History

ice: Add support Flex RXD

Add new VIRTCHNL_VF_OFFLOAD_RX_FLEX_DESC flag, opcode VIRTCHNL_OP_GET_SUPPORTED_RXDIDS and add member rxdid in struct virtchnl_rxq_info to support AVF Flex RXD extension. Add support to allow VF to query flexible descriptor RXDIDs supported by DDP package and configure Rx queues with selected RXDID for IAVF. Add code to allow VIRTCHNL_OP_GET_SUPPORTED_RXDIDS message to be processed. Add necessary macros for registers.

Michal Jaron committed 4 years ago

Commit e753df81 parent 3a1cc236 files · +111 −2Browse files

Showing the changes to include/linux/avf (1 of 6 files). Show all

Unified · Split

include/linux/avf/virtchnl.h+12−2
@@ -136,7 +136,8 @@ enum virtchnl_ops { · 135 unmodified lines
136 VIRTCHNL_OP_DISABLE_CHANNELS = 31,136 VIRTCHNL_OP_DISABLE_CHANNELS = 31,
137 VIRTCHNL_OP_ADD_CLOUD_FILTER = 32,137 VIRTCHNL_OP_ADD_CLOUD_FILTER = 32,
138 VIRTCHNL_OP_DEL_CLOUD_FILTER = 33,138 VIRTCHNL_OP_DEL_CLOUD_FILTER = 33,
139 /* opcode 34 - 44 are reserved */139 /* opcode 34 - 43 are reserved */
140 VIRTCHNL_OP_GET_SUPPORTED_RXDIDS = 44,
140 VIRTCHNL_OP_ADD_RSS_CFG = 45,141 VIRTCHNL_OP_ADD_RSS_CFG = 45,
141 VIRTCHNL_OP_DEL_RSS_CFG = 46,142 VIRTCHNL_OP_DEL_RSS_CFG = 46,
142 VIRTCHNL_OP_ADD_FDIR_FILTER = 47,143 VIRTCHNL_OP_ADD_FDIR_FILTER = 47,
@@ -263,6 +264,7 @@ VIRTCHNL_CHECK_STRUCT_LEN(16, virtchnl_vsi_resource); · 120 unmodified lines
263#define VIRTCHNL_VF_OFFLOAD_RX_ENCAP_CSUM BIT(22)264#define VIRTCHNL_VF_OFFLOAD_RX_ENCAP_CSUM BIT(22)
264#define VIRTCHNL_VF_OFFLOAD_ADQ BIT(23)265#define VIRTCHNL_VF_OFFLOAD_ADQ BIT(23)
265#define VIRTCHNL_VF_OFFLOAD_USO BIT(25)266#define VIRTCHNL_VF_OFFLOAD_USO BIT(25)
267#define VIRTCHNL_VF_OFFLOAD_RX_FLEX_DESC BIT(26)
266#define VIRTCHNL_VF_OFFLOAD_ADV_RSS_PF BIT(27)268#define VIRTCHNL_VF_OFFLOAD_ADV_RSS_PF BIT(27)
267#define VIRTCHNL_VF_OFFLOAD_FDIR_PF BIT(28)269#define VIRTCHNL_VF_OFFLOAD_FDIR_PF BIT(28)
268 270
@@ -318,7 +320,9 @@ struct virtchnl_rxq_info { · 49 unmodified lines
318 u16 splithdr_enabled; /* deprecated with AVF 1.0 */320 u16 splithdr_enabled; /* deprecated with AVF 1.0 */
319 u32 databuffer_size;321 u32 databuffer_size;
320 u32 max_pkt_size;322 u32 max_pkt_size;
321 u32 pad1;323 u8 pad0;
324 u8 rxdid;
325 u8 pad1[2];
322 u64 dma_ring_addr;326 u64 dma_ring_addr;
323 enum virtchnl_rx_hsplit rx_split_pos; /* deprecated with AVF 1.0 */327 enum virtchnl_rx_hsplit rx_split_pos; /* deprecated with AVF 1.0 */
324 u32 pad2;328 u32 pad2;
@@ -970,6 +974,10 @@ struct virtchnl_filter { · 645 unmodified lines
970 974
971VIRTCHNL_CHECK_STRUCT_LEN(272, virtchnl_filter);975VIRTCHNL_CHECK_STRUCT_LEN(272, virtchnl_filter);
972 976
977struct virtchnl_supported_rxdids {
978 u64 supported_rxdids;
979};
980
973/* VIRTCHNL_OP_EVENT981/* VIRTCHNL_OP_EVENT
974 * PF sends this message to inform the VF driver of events that may affect it.982 * PF sends this message to inform the VF driver of events that may affect it.
975 * No direct response is expected from the VF, though it may generate other983 * No direct response is expected from the VF, though it may generate other
@@ -1499,6 +1507,8 @@ virtchnl_vc_validate_vf_msg(struct virtchnl_version_info *ver, u32 v_opcode, · 523 unmodified lines
1499 case VIRTCHNL_OP_DEL_CLOUD_FILTER:1507 case VIRTCHNL_OP_DEL_CLOUD_FILTER:
1500 valid_len = sizeof(struct virtchnl_filter);1508 valid_len = sizeof(struct virtchnl_filter);
1501 break;1509 break;
1510 case VIRTCHNL_OP_GET_SUPPORTED_RXDIDS:
1511 break;
1502 case VIRTCHNL_OP_ADD_RSS_CFG:1512 case VIRTCHNL_OP_ADD_RSS_CFG:
1503 case VIRTCHNL_OP_DEL_RSS_CFG:1513 case VIRTCHNL_OP_DEL_RSS_CFG:
1504 valid_len = sizeof(struct virtchnl_rss_cfg);1514 valid_len = sizeof(struct virtchnl_rss_cfg);