Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixl/i40e_virtchnl.h
Show First 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | */ | ||||
I40E_VIRTCHNL_OP_DISABLE_QUEUES = 9, | I40E_VIRTCHNL_OP_DISABLE_QUEUES = 9, | ||||
I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS = 10, | I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS = 10, | ||||
I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS = 11, | I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS = 11, | ||||
I40E_VIRTCHNL_OP_ADD_VLAN = 12, | I40E_VIRTCHNL_OP_ADD_VLAN = 12, | ||||
I40E_VIRTCHNL_OP_DEL_VLAN = 13, | I40E_VIRTCHNL_OP_DEL_VLAN = 13, | ||||
I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE = 14, | I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE = 14, | ||||
I40E_VIRTCHNL_OP_GET_STATS = 15, | I40E_VIRTCHNL_OP_GET_STATS = 15, | ||||
I40E_VIRTCHNL_OP_FCOE = 16, | I40E_VIRTCHNL_OP_FCOE = 16, | ||||
I40E_VIRTCHNL_OP_EVENT = 17, | I40E_VIRTCHNL_OP_EVENT = 17, /* must ALWAYS be 17 */ | ||||
I40E_VIRTCHNL_OP_CONFIG_RSS_KEY = 23, | |||||
I40E_VIRTCHNL_OP_CONFIG_RSS_LUT = 24, | |||||
I40E_VIRTCHNL_OP_GET_RSS_HENA_CAPS = 25, | |||||
I40E_VIRTCHNL_OP_SET_RSS_HENA = 26, | |||||
}; | }; | ||||
/* Virtual channel message descriptor. This overlays the admin queue | /* Virtual channel message descriptor. This overlays the admin queue | ||||
* descriptor. All other data is passed in external buffers. | * descriptor. All other data is passed in external buffers. | ||||
*/ | */ | ||||
struct i40e_virtchnl_msg { | struct i40e_virtchnl_msg { | ||||
u8 pad[8]; /* AQ flags/opcode/len/retval fields */ | u8 pad[8]; /* AQ flags/opcode/len/retval fields */ | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
#define I40E_VIRTCHNL_VF_OFFLOAD_IWARP 0x00000002 | #define I40E_VIRTCHNL_VF_OFFLOAD_IWARP 0x00000002 | ||||
#define I40E_VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004 | #define I40E_VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004 | ||||
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ 0x00000008 | #define I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ 0x00000008 | ||||
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG 0x00000010 | #define I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG 0x00000010 | ||||
#define I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR 0x00000020 | #define I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR 0x00000020 | ||||
#define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000 | #define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000 | ||||
#define I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING 0x00020000 | #define I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING 0x00020000 | ||||
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2 0x00040000 | #define I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2 0x00040000 | ||||
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF 0X00080000 | |||||
struct i40e_virtchnl_vf_resource { | struct i40e_virtchnl_vf_resource { | ||||
u16 num_vsis; | u16 num_vsis; | ||||
u16 num_queue_pairs; | u16 num_queue_pairs; | ||||
u16 max_vectors; | u16 max_vectors; | ||||
u16 max_mtu; | u16 max_mtu; | ||||
u32 vf_offload_flags; | u32 vf_offload_flags; | ||||
u32 max_fcoe_contexts; | u32 rss_key_size; | ||||
u32 max_fcoe_filters; | u32 rss_lut_size; | ||||
struct i40e_virtchnl_vsi_resource vsi_res[1]; | struct i40e_virtchnl_vsi_resource vsi_res[1]; | ||||
}; | }; | ||||
/* I40E_VIRTCHNL_OP_CONFIG_TX_QUEUE | /* I40E_VIRTCHNL_OP_CONFIG_TX_QUEUE | ||||
* VF sends this message to set up parameters for one TX queue. | * VF sends this message to set up parameters for one TX queue. | ||||
* External data buffer contains one instance of i40e_virtchnl_txq_info. | * External data buffer contains one instance of i40e_virtchnl_txq_info. | ||||
* PF configures requested queue and returns a status code. | * PF configures requested queue and returns a status code. | ||||
▲ Show 20 Lines • Show All 141 Lines • ▼ Show 20 Lines | |||||
/* I40E_VIRTCHNL_OP_GET_STATS | /* I40E_VIRTCHNL_OP_GET_STATS | ||||
* VF sends this message to request stats for the selected VSI. VF uses | * VF sends this message to request stats for the selected VSI. VF uses | ||||
* the i40e_virtchnl_queue_select struct to specify the VSI. The queue_id | * the i40e_virtchnl_queue_select struct to specify the VSI. The queue_id | ||||
* field is ignored by the PF. | * field is ignored by the PF. | ||||
* | * | ||||
* PF replies with struct i40e_eth_stats in an external buffer. | * PF replies with struct i40e_eth_stats in an external buffer. | ||||
*/ | */ | ||||
/* I40E_VIRTCHNL_OP_CONFIG_RSS_KEY | |||||
* I40E_VIRTCHNL_OP_CONFIG_RSS_LUT | |||||
* VF sends these messages to configure RSS. Only supported if both PF | |||||
* and VF drivers set the I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF bit during | |||||
* configuration negotiation. If this is the case, then the rss fields in | |||||
* the vf resource struct are valid. | |||||
* Both the key and LUT are initialized to 0 by the PF, meaning that | |||||
* RSS is effectively disabled until set up by the VF. | |||||
*/ | |||||
struct i40e_virtchnl_rss_key { | |||||
u16 vsi_id; | |||||
u16 key_len; | |||||
u8 key[1]; /* RSS hash key, packed bytes */ | |||||
}; | |||||
struct i40e_virtchnl_rss_lut { | |||||
u16 vsi_id; | |||||
u16 lut_entries; | |||||
u8 lut[1]; /* RSS lookup table*/ | |||||
}; | |||||
/* I40E_VIRTCHNL_OP_GET_RSS_HENA_CAPS | |||||
* I40E_VIRTCHNL_OP_SET_RSS_HENA | |||||
* VF sends these messages to get and set the hash filter enable bits for RSS. | |||||
* By default, the PF sets these to all possible traffic types that the | |||||
* hardware supports. The VF can query this value if it wants to change the | |||||
* traffic types that are hashed by the hardware. | |||||
* Traffic types are defined in the i40e_filter_pctype enum in i40e_type.h | |||||
*/ | |||||
struct i40e_virtchnl_rss_hena { | |||||
u64 hena; | |||||
}; | |||||
/* I40E_VIRTCHNL_OP_EVENT | /* I40E_VIRTCHNL_OP_EVENT | ||||
* PF sends this message to inform the VF driver of events that may affect it. | * PF sends this message to inform the VF driver of events that may affect it. | ||||
* No direct response is expected from the VF, though it may generate other | * No direct response is expected from the VF, though it may generate other | ||||
* messages in response to this one. | * messages in response to this one. | ||||
*/ | */ | ||||
enum i40e_virtchnl_event_codes { | enum i40e_virtchnl_event_codes { | ||||
I40E_VIRTCHNL_EVENT_UNKNOWN = 0, | I40E_VIRTCHNL_EVENT_UNKNOWN = 0, | ||||
▲ Show 20 Lines • Show All 41 Lines • Show Last 20 Lines |