net/ice/base: add IP fragment flags

Add the IPv6 fragment flags and the IPv4 fragment field shift.

Signed-off-by: Ting Xu <ting.xu@intel.com>
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
This commit is contained in:
Qi Zhang 2021-04-29 08:41:38 +08:00
parent cfacca202f
commit 937fa68010
2 changed files with 13 additions and 5 deletions

View File

@ -1505,7 +1505,7 @@ ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw, struct ice_fdir_fltr *input,
ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
if (frag)
loc[20] = ICE_FDIR_IPV4_PKT_FLAG_DF;
loc[20] = ICE_FDIR_IPV4_PKT_FLAG_MF;
break;
case ICE_FLTR_PTYPE_NONF_IPV4_UDP:
ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);

View File

@ -83,12 +83,20 @@
#define ICE_FDIR_MAX_FLTRS 16384
/* IP v4 has 2 flag bits that enable fragment processing: DF and MF. DF
/* IPv4 has 2 flag bits that enable fragment processing: DF and MF. DF
* requests that the packet not be fragmented. MF indicates that a packet has
* been fragmented.
* been fragmented, except that for the last fragment has a non-zero
* Fragment Offset field with zero MF.
*/
#define ICE_FDIR_IPV4_PKT_FLAG_DF 0x20
#define ICE_FDIR_IPV4_PKT_FLAG_MF 0x40
#define ICE_FDIR_IPV4_PKT_FLAG_MF 0x20
#define ICE_FDIR_IPV4_PKT_FLAG_MF_SHIFT 8
#define ICE_FDIR_IPV4_PKT_FLAG_DF 0x40
/* For IPv6 fragmented packets, all fragments except the last have
* the MF flag set.
*/
#define ICE_FDIR_IPV6_PKT_FLAG_MF 0x100
#define ICE_FDIR_IPV6_PKT_FLAG_MF_SHIFT 8
enum ice_fltr_prgm_desc_dest {
ICE_FLTR_PRGM_DESC_DEST_DROP_PKT,