Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ice: add virtchnl definitions and static data for GTP RSS

Add virtchnl protocol header and field definitions for advanced RSS
configuration including GTPC, GTPU, L2TPv2, ECPRI, PPP, GRE, and IP
fragment headers.

- Define new virtchnl protocol header types
- Add RSS field selectors for tunnel protocols
- Extend static mapping arrays for protocol field matching
- Add L2TPv2 session ID and length+session ID field support

This provides the foundational definitions needed for VF RSS
configuration of tunnel protocols.

Co-developed-by: Dan Nowlin <dan.nowlin@intel.com>
Signed-off-by: Dan Nowlin <dan.nowlin@intel.com>
Co-developed-by: Jie Wang <jie1x.wang@intel.com>
Signed-off-by: Jie Wang <jie1x.wang@intel.com>
Co-developed-by: Junfeng Guo <junfeng.guo@intel.com>
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
Co-developed-by: Qi Zhang <qi.z.zhang@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Co-developed-by: Ting Xu <ting.xu@intel.com>
Signed-off-by: Ting Xu <ting.xu@intel.com>
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>

authored by

Aleksandr Loktionov and committed by
Tony Nguyen
38724a47 12ed3e5a

+316 -1
+48
drivers/net/ethernet/intel/ice/ice_vf_lib.h
··· 53 53 u16 last_printed; 54 54 }; 55 55 56 + enum ice_hash_ip_ctx_type { 57 + ICE_HASH_IP_CTX_IP = 0, 58 + ICE_HASH_IP_CTX_IP_ESP, 59 + ICE_HASH_IP_CTX_IP_UDP_ESP, 60 + ICE_HASH_IP_CTX_IP_AH, 61 + ICE_HASH_IP_CTX_IP_PFCP, 62 + ICE_HASH_IP_CTX_IP_UDP, 63 + ICE_HASH_IP_CTX_IP_TCP, 64 + ICE_HASH_IP_CTX_IP_SCTP, 65 + ICE_HASH_IP_CTX_MAX, 66 + }; 67 + 68 + struct ice_vf_hash_ip_ctx { 69 + struct ice_rss_hash_cfg ctx[ICE_HASH_IP_CTX_MAX]; 70 + }; 71 + 72 + enum ice_hash_gtpu_ctx_type { 73 + ICE_HASH_GTPU_CTX_EH_IP = 0, 74 + ICE_HASH_GTPU_CTX_EH_IP_UDP, 75 + ICE_HASH_GTPU_CTX_EH_IP_TCP, 76 + ICE_HASH_GTPU_CTX_UP_IP, 77 + ICE_HASH_GTPU_CTX_UP_IP_UDP, 78 + ICE_HASH_GTPU_CTX_UP_IP_TCP, 79 + ICE_HASH_GTPU_CTX_DW_IP, 80 + ICE_HASH_GTPU_CTX_DW_IP_UDP, 81 + ICE_HASH_GTPU_CTX_DW_IP_TCP, 82 + ICE_HASH_GTPU_CTX_MAX, 83 + }; 84 + 85 + struct ice_vf_hash_gtpu_ctx { 86 + struct ice_rss_hash_cfg ctx[ICE_HASH_GTPU_CTX_MAX]; 87 + }; 88 + 89 + struct ice_vf_hash_ctx { 90 + struct ice_vf_hash_ip_ctx v4; 91 + struct ice_vf_hash_ip_ctx v6; 92 + struct ice_vf_hash_gtpu_ctx ipv4; 93 + struct ice_vf_hash_gtpu_ctx ipv6; 94 + }; 95 + 56 96 /* Structure to store fdir fv entry */ 57 97 struct ice_fdir_prof_info { 58 98 struct ice_parser_profile prof; ··· 104 64 u32 peak; 105 65 u16 queue_id; 106 66 u8 tc; 67 + }; 68 + 69 + /* Structure to store RSS field vector entry */ 70 + struct ice_rss_prof_info { 71 + struct ice_parser_profile prof; 72 + bool symm; 107 73 }; 108 74 109 75 /* VF operations */ ··· 152 106 u16 ctrl_vsi_idx; 153 107 struct ice_vf_fdir fdir; 154 108 struct ice_fdir_prof_info fdir_prof_info[ICE_MAX_PTGS]; 109 + struct ice_rss_prof_info rss_prof_info[ICE_MAX_PTGS]; 110 + struct ice_vf_hash_ctx hash_ctx; 155 111 u64 rss_hashcfg; /* RSS hash configuration */ 156 112 struct ice_sw *vf_sw_id; /* switch ID the VF VSIs connect to */ 157 113 struct virtchnl_version_info vf_ver;
+218 -1
drivers/net/ethernet/intel/ice/virt/rss.c
··· 36 36 {VIRTCHNL_PROTO_HDR_ESP, ICE_FLOW_SEG_HDR_ESP}, 37 37 {VIRTCHNL_PROTO_HDR_AH, ICE_FLOW_SEG_HDR_AH}, 38 38 {VIRTCHNL_PROTO_HDR_PFCP, ICE_FLOW_SEG_HDR_PFCP_SESSION}, 39 + {VIRTCHNL_PROTO_HDR_GTPC, ICE_FLOW_SEG_HDR_GTPC}, 40 + {VIRTCHNL_PROTO_HDR_L2TPV2, ICE_FLOW_SEG_HDR_L2TPV2}, 41 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, ICE_FLOW_SEG_HDR_IPV_FRAG}, 42 + {VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG, ICE_FLOW_SEG_HDR_IPV_FRAG}, 43 + {VIRTCHNL_PROTO_HDR_GRE, ICE_FLOW_SEG_HDR_GRE}, 39 44 }; 40 45 41 46 struct ice_vc_hash_field_match_type { ··· 92 87 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 93 88 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), 94 89 ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)}, 95 - {VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), 90 + {VIRTCHNL_PROTO_HDR_IPV4, 91 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID), 92 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_ID)}, 93 + {VIRTCHNL_PROTO_HDR_IPV4, 94 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 95 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 96 + {VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 97 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 98 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) | 99 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 100 + {VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 101 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 102 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) | 103 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 104 + {VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 105 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 106 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 107 + ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 108 + {VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 109 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) | 110 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 111 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) | 112 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) | 113 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 114 + {VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 115 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) | 116 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 117 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) | 118 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) | 119 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 120 + {VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 121 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 122 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) | 123 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 124 + ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) | 125 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 126 + {VIRTCHNL_PROTO_HDR_IPV4, 127 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) | 128 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 129 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) | 130 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 131 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 132 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), 96 133 BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)}, 134 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 135 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC), 136 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA)}, 137 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 138 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST), 139 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA)}, 140 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 141 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 142 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST), 143 + ICE_FLOW_HASH_IPV4}, 144 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 145 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 146 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), 147 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) | 148 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)}, 149 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 150 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 151 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), 152 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) | 153 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)}, 154 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 155 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 156 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 157 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), 158 + ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)}, 159 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 160 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), 161 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)}, 162 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 163 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID), 164 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_ID)}, 165 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 166 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 167 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 168 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 169 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 170 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 171 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) | 172 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 173 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 174 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 175 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 176 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) | 177 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 178 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 179 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 180 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 181 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 182 + ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 183 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 184 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 185 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) | 186 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 187 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) | 188 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) | 189 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 190 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 191 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 192 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) | 193 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 194 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) | 195 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) | 196 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 197 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 198 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | 199 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | 200 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) | 201 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 202 + ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) | 203 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 204 + {VIRTCHNL_PROTO_HDR_IPV4_FRAG, 205 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) | 206 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM), 207 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) | 208 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)}, 97 209 {VIRTCHNL_PROTO_HDR_IPV6, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC), 98 210 BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA)}, 99 211 {VIRTCHNL_PROTO_HDR_IPV6, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST), ··· 232 110 ICE_FLOW_HASH_IPV6 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)}, 233 111 {VIRTCHNL_PROTO_HDR_IPV6, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), 234 112 BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)}, 113 + {VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG, 114 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG_PKID), 115 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_ID)}, 116 + {VIRTCHNL_PROTO_HDR_IPV6, 117 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_SRC) | 118 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST), 119 + ICE_FLOW_HASH_IPV6_PRE64}, 120 + {VIRTCHNL_PROTO_HDR_IPV6, 121 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_SRC), 122 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA)}, 123 + {VIRTCHNL_PROTO_HDR_IPV6, 124 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST), 125 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA)}, 126 + {VIRTCHNL_PROTO_HDR_IPV6, 127 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_SRC) | 128 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST) | 129 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), 130 + ICE_FLOW_HASH_IPV6_PRE64 | 131 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)}, 132 + {VIRTCHNL_PROTO_HDR_IPV6, 133 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_SRC) | 134 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), 135 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) | 136 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)}, 137 + {VIRTCHNL_PROTO_HDR_IPV6, 138 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST) | 139 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), 140 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) | 141 + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)}, 235 142 {VIRTCHNL_PROTO_HDR_TCP, 236 143 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT), 237 144 BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)}, ··· 271 120 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT) | 272 121 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_DST_PORT), 273 122 ICE_FLOW_HASH_TCP_PORT}, 123 + {VIRTCHNL_PROTO_HDR_TCP, 124 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_CHKSUM), 125 + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_CHKSUM)}, 126 + {VIRTCHNL_PROTO_HDR_TCP, 127 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT) | 128 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_CHKSUM), 129 + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT) | 130 + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_CHKSUM)}, 131 + {VIRTCHNL_PROTO_HDR_TCP, 132 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_DST_PORT) | 133 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_CHKSUM), 134 + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT) | 135 + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_CHKSUM)}, 136 + {VIRTCHNL_PROTO_HDR_TCP, 137 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT) | 138 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_DST_PORT) | 139 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_CHKSUM), 140 + ICE_FLOW_HASH_TCP_PORT | 141 + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_CHKSUM)}, 274 142 {VIRTCHNL_PROTO_HDR_UDP, 275 143 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT), 276 144 BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)}, ··· 300 130 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT) | 301 131 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_DST_PORT), 302 132 ICE_FLOW_HASH_UDP_PORT}, 133 + {VIRTCHNL_PROTO_HDR_UDP, 134 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_CHKSUM), 135 + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_CHKSUM)}, 136 + {VIRTCHNL_PROTO_HDR_UDP, 137 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT) | 138 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_CHKSUM), 139 + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT) | 140 + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_CHKSUM)}, 141 + {VIRTCHNL_PROTO_HDR_UDP, 142 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_DST_PORT) | 143 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_CHKSUM), 144 + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT) | 145 + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_CHKSUM)}, 146 + {VIRTCHNL_PROTO_HDR_UDP, 147 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT) | 148 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_DST_PORT) | 149 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_CHKSUM), 150 + ICE_FLOW_HASH_UDP_PORT | 151 + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_CHKSUM)}, 303 152 {VIRTCHNL_PROTO_HDR_SCTP, 304 153 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT), 305 154 BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)}, ··· 329 140 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT) | 330 141 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_DST_PORT), 331 142 ICE_FLOW_HASH_SCTP_PORT}, 143 + {VIRTCHNL_PROTO_HDR_SCTP, 144 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_CHKSUM), 145 + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_CHKSUM)}, 146 + {VIRTCHNL_PROTO_HDR_SCTP, 147 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT) | 148 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_CHKSUM), 149 + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT) | 150 + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_CHKSUM)}, 151 + {VIRTCHNL_PROTO_HDR_SCTP, 152 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_DST_PORT) | 153 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_CHKSUM), 154 + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT) | 155 + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_CHKSUM)}, 156 + {VIRTCHNL_PROTO_HDR_SCTP, 157 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT) | 158 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_DST_PORT) | 159 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_CHKSUM), 160 + ICE_FLOW_HASH_SCTP_PORT | 161 + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_CHKSUM)}, 332 162 {VIRTCHNL_PROTO_HDR_PPPOE, 333 163 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_PPPOE_SESS_ID), 334 164 BIT_ULL(ICE_FLOW_FIELD_IDX_PPPOE_SESS_ID)}, ··· 363 155 BIT_ULL(ICE_FLOW_FIELD_IDX_AH_SPI)}, 364 156 {VIRTCHNL_PROTO_HDR_PFCP, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_PFCP_SEID), 365 157 BIT_ULL(ICE_FLOW_FIELD_IDX_PFCP_SEID)}, 158 + {VIRTCHNL_PROTO_HDR_GTPC, 159 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_GTPC_TEID), 160 + BIT_ULL(ICE_FLOW_FIELD_IDX_GTPC_TEID)}, 161 + {VIRTCHNL_PROTO_HDR_L2TPV2, 162 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_L2TPV2_SESS_ID), 163 + BIT_ULL(ICE_FLOW_FIELD_IDX_L2TPV2_SESS_ID)}, 164 + {VIRTCHNL_PROTO_HDR_L2TPV2, 165 + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_L2TPV2_LEN_SESS_ID), 166 + BIT_ULL(ICE_FLOW_FIELD_IDX_L2TPV2_LEN_SESS_ID)}, 366 167 }; 367 168 368 169 /**
+50
include/linux/avf/virtchnl.h
··· 1253 1253 VIRTCHNL_PROTO_HDR_ESP, 1254 1254 VIRTCHNL_PROTO_HDR_AH, 1255 1255 VIRTCHNL_PROTO_HDR_PFCP, 1256 + VIRTCHNL_PROTO_HDR_GTPC, 1257 + VIRTCHNL_PROTO_HDR_ECPRI, 1258 + VIRTCHNL_PROTO_HDR_L2TPV2, 1259 + VIRTCHNL_PROTO_HDR_PPP, 1260 + /* IPv4 and IPv6 Fragment header types are only associated to 1261 + * VIRTCHNL_PROTO_HDR_IPV4 and VIRTCHNL_PROTO_HDR_IPV6 respectively, 1262 + * cannot be used independently. 1263 + */ 1264 + VIRTCHNL_PROTO_HDR_IPV4_FRAG, 1265 + VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG, 1266 + VIRTCHNL_PROTO_HDR_GRE, 1256 1267 }; 1257 1268 1258 1269 /* Protocol header field within a protocol header. */ ··· 1286 1275 VIRTCHNL_PROTO_HDR_IPV4_DSCP, 1287 1276 VIRTCHNL_PROTO_HDR_IPV4_TTL, 1288 1277 VIRTCHNL_PROTO_HDR_IPV4_PROT, 1278 + VIRTCHNL_PROTO_HDR_IPV4_CHKSUM, 1289 1279 /* IPV6 */ 1290 1280 VIRTCHNL_PROTO_HDR_IPV6_SRC = 1291 1281 PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_IPV6), ··· 1294 1282 VIRTCHNL_PROTO_HDR_IPV6_TC, 1295 1283 VIRTCHNL_PROTO_HDR_IPV6_HOP_LIMIT, 1296 1284 VIRTCHNL_PROTO_HDR_IPV6_PROT, 1285 + /* IPV6 Prefix */ 1286 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX32_SRC, 1287 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX32_DST, 1288 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX40_SRC, 1289 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX40_DST, 1290 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX48_SRC, 1291 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX48_DST, 1292 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX56_SRC, 1293 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX56_DST, 1294 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_SRC, 1295 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST, 1296 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX96_SRC, 1297 + VIRTCHNL_PROTO_HDR_IPV6_PREFIX96_DST, 1297 1298 /* TCP */ 1298 1299 VIRTCHNL_PROTO_HDR_TCP_SRC_PORT = 1299 1300 PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_TCP), 1300 1301 VIRTCHNL_PROTO_HDR_TCP_DST_PORT, 1302 + VIRTCHNL_PROTO_HDR_TCP_CHKSUM, 1301 1303 /* UDP */ 1302 1304 VIRTCHNL_PROTO_HDR_UDP_SRC_PORT = 1303 1305 PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_UDP), 1304 1306 VIRTCHNL_PROTO_HDR_UDP_DST_PORT, 1307 + VIRTCHNL_PROTO_HDR_UDP_CHKSUM, 1305 1308 /* SCTP */ 1306 1309 VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT = 1307 1310 PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_SCTP), 1308 1311 VIRTCHNL_PROTO_HDR_SCTP_DST_PORT, 1312 + VIRTCHNL_PROTO_HDR_SCTP_CHKSUM, 1309 1313 /* GTPU_IP */ 1310 1314 VIRTCHNL_PROTO_HDR_GTPU_IP_TEID = 1311 1315 PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_GTPU_IP), ··· 1345 1317 VIRTCHNL_PROTO_HDR_PFCP_S_FIELD = 1346 1318 PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_PFCP), 1347 1319 VIRTCHNL_PROTO_HDR_PFCP_SEID, 1320 + /* GTPC */ 1321 + VIRTCHNL_PROTO_HDR_GTPC_TEID = 1322 + PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_GTPC), 1323 + /* ECPRI */ 1324 + VIRTCHNL_PROTO_HDR_ECPRI_MSG_TYPE = 1325 + PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_ECPRI), 1326 + VIRTCHNL_PROTO_HDR_ECPRI_PC_RTC_ID, 1327 + /* IPv4 Dummy Fragment */ 1328 + VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID = 1329 + PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_IPV4_FRAG), 1330 + /* IPv6 Extension Fragment */ 1331 + VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG_PKID = 1332 + PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG), 1333 + /* GTPU_DWN/UP */ 1334 + VIRTCHNL_PROTO_HDR_GTPU_DWN_QFI = 1335 + PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_GTPU_EH_PDU_DWN), 1336 + VIRTCHNL_PROTO_HDR_GTPU_UP_QFI = 1337 + PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_GTPU_EH_PDU_UP), 1338 + /* L2TPv2 */ 1339 + VIRTCHNL_PROTO_HDR_L2TPV2_SESS_ID = 1340 + PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_L2TPV2), 1341 + VIRTCHNL_PROTO_HDR_L2TPV2_LEN_SESS_ID, 1348 1342 }; 1349 1343 1350 1344 struct virtchnl_proto_hdr {