ionic: ionic_if bits for sr-iov support
Adds new AdminQ calls and their related structs for supporting PF controls on VFs: CMD_OPCODE_VF_GETATTR CMD_OPCODE_VF_SETATTR Signed-off-by: Shannon Nelson <snelson@pensando.io> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
14a65084f9
commit
3d462ce2a1
|
@ -51,6 +51,10 @@ enum ionic_cmd_opcode {
|
|||
IONIC_CMD_RDMA_CREATE_CQ = 52,
|
||||
IONIC_CMD_RDMA_CREATE_ADMINQ = 53,
|
||||
|
||||
/* SR/IOV commands */
|
||||
IONIC_CMD_VF_GETATTR = 60,
|
||||
IONIC_CMD_VF_SETATTR = 61,
|
||||
|
||||
/* QoS commands */
|
||||
IONIC_CMD_QOS_CLASS_IDENTIFY = 240,
|
||||
IONIC_CMD_QOS_CLASS_INIT = 241,
|
||||
|
@ -1639,6 +1643,93 @@ enum ionic_qos_sched_type {
|
|||
IONIC_QOS_SCHED_TYPE_DWRR = 1, /* Deficit weighted round-robin */
|
||||
};
|
||||
|
||||
enum ionic_vf_attr {
|
||||
IONIC_VF_ATTR_SPOOFCHK = 1,
|
||||
IONIC_VF_ATTR_TRUST = 2,
|
||||
IONIC_VF_ATTR_MAC = 3,
|
||||
IONIC_VF_ATTR_LINKSTATE = 4,
|
||||
IONIC_VF_ATTR_VLAN = 5,
|
||||
IONIC_VF_ATTR_RATE = 6,
|
||||
IONIC_VF_ATTR_STATSADDR = 7,
|
||||
};
|
||||
|
||||
/**
|
||||
* VF link status
|
||||
*/
|
||||
enum ionic_vf_link_status {
|
||||
IONIC_VF_LINK_STATUS_AUTO = 0, /* link state of the uplink */
|
||||
IONIC_VF_LINK_STATUS_UP = 1, /* link is always up */
|
||||
IONIC_VF_LINK_STATUS_DOWN = 2, /* link is always down */
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ionic_vf_setattr_cmd - Set VF attributes on the NIC
|
||||
* @opcode: Opcode
|
||||
* @index: VF index
|
||||
* @attr: Attribute type (enum ionic_vf_attr)
|
||||
* macaddr mac address
|
||||
* vlanid vlan ID
|
||||
* maxrate max Tx rate in Mbps
|
||||
* spoofchk enable address spoof checking
|
||||
* trust enable VF trust
|
||||
* linkstate set link up or down
|
||||
* stats_pa set DMA address for VF stats
|
||||
*/
|
||||
struct ionic_vf_setattr_cmd {
|
||||
u8 opcode;
|
||||
u8 attr;
|
||||
__le16 vf_index;
|
||||
union {
|
||||
u8 macaddr[6];
|
||||
__le16 vlanid;
|
||||
__le32 maxrate;
|
||||
u8 spoofchk;
|
||||
u8 trust;
|
||||
u8 linkstate;
|
||||
__le64 stats_pa;
|
||||
u8 pad[60];
|
||||
};
|
||||
};
|
||||
|
||||
struct ionic_vf_setattr_comp {
|
||||
u8 status;
|
||||
u8 attr;
|
||||
__le16 vf_index;
|
||||
__le16 comp_index;
|
||||
u8 rsvd[9];
|
||||
u8 color;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ionic_vf_getattr_cmd - Get VF attributes from the NIC
|
||||
* @opcode: Opcode
|
||||
* @index: VF index
|
||||
* @attr: Attribute type (enum ionic_vf_attr)
|
||||
*/
|
||||
struct ionic_vf_getattr_cmd {
|
||||
u8 opcode;
|
||||
u8 attr;
|
||||
__le16 vf_index;
|
||||
u8 rsvd[60];
|
||||
};
|
||||
|
||||
struct ionic_vf_getattr_comp {
|
||||
u8 status;
|
||||
u8 attr;
|
||||
__le16 vf_index;
|
||||
union {
|
||||
u8 macaddr[6];
|
||||
__le16 vlanid;
|
||||
__le32 maxrate;
|
||||
u8 spoofchk;
|
||||
u8 trust;
|
||||
u8 linkstate;
|
||||
__le64 stats_pa;
|
||||
u8 pad[11];
|
||||
};
|
||||
u8 color;
|
||||
};
|
||||
|
||||
/**
|
||||
* union ionic_qos_config - Qos configuration structure
|
||||
* @flags: Configuration flags
|
||||
|
@ -2289,6 +2380,9 @@ union ionic_dev_cmd {
|
|||
struct ionic_port_getattr_cmd port_getattr;
|
||||
struct ionic_port_setattr_cmd port_setattr;
|
||||
|
||||
struct ionic_vf_setattr_cmd vf_setattr;
|
||||
struct ionic_vf_getattr_cmd vf_getattr;
|
||||
|
||||
struct ionic_lif_identify_cmd lif_identify;
|
||||
struct ionic_lif_init_cmd lif_init;
|
||||
struct ionic_lif_reset_cmd lif_reset;
|
||||
|
@ -2318,6 +2412,9 @@ union ionic_dev_cmd_comp {
|
|||
struct ionic_port_getattr_comp port_getattr;
|
||||
struct ionic_port_setattr_comp port_setattr;
|
||||
|
||||
struct ionic_vf_setattr_comp vf_setattr;
|
||||
struct ionic_vf_getattr_comp vf_getattr;
|
||||
|
||||
struct ionic_lif_identify_comp lif_identify;
|
||||
struct ionic_lif_init_comp lif_init;
|
||||
ionic_lif_reset_comp lif_reset;
|
||||
|
|
Loading…
Reference in New Issue