net/ice/base: support flow director for IPv6 fragments
authorWenjun Wu <wenjun1.wu@intel.com>
Tue, 3 Aug 2021 07:23:54 +0000 (15:23 +0800)
committerQi Zhang <qi.z.zhang@intel.com>
Sun, 29 Aug 2021 11:13:52 +0000 (13:13 +0200)
Add L2 and L3 FDIR field support for IPv6 fragment packets.

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/base/ice_fdir.c

index d50f54a..ae76361 100644 (file)
@@ -4085,6 +4085,13 @@ ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw, struct ice_fdir_fltr *input,
                ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
                break;
        case ICE_FLTR_PTYPE_FRAG_IPV6:
+               ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
+                                        input->ip.v6.src_ip);
+               ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
+                                        input->ip.v6.dst_ip);
+               ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
+               ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
+               ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
                ice_pkt_insert_u32(loc, ICE_IPV6_ID_OFFSET,
                                   input->ip.v6.packet_id);
                break;