net/iavf: fix flow director L3 field for IPv4 fragments
authorWenjun Wu <wenjun1.wu@intel.com>
Tue, 17 Aug 2021 06:49:55 +0000 (14:49 +0800)
committerQi Zhang <qi.z.zhang@intel.com>
Sun, 29 Aug 2021 11:20:13 +0000 (13:20 +0200)
Originally, the value of field_selector for IPV4_FRAG header hdr1 is
the same as the previous header hdr2. For IPv4 packets, field_selector
for hdr2 can be any value between 0 and 4, depending on the selected
field. Actually, this value for IPV4_FRAG should be constant 0,
which denotes the field packet ID.

This patch adds an assignment to hdr1->field_selector to make sure that
it is always 0.

Fixes: 3334513ef484 ("net/iavf: support flow director for IP fragment")
Cc: stable@dpdk.org
Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/iavf/iavf_fdir.c

index da3eec8..ca72d45 100644 (file)
@@ -664,6 +664,7 @@ iavf_fdir_add_fragment_hdr(struct virtchnl_proto_hdrs *hdrs, int layer)
        /* adding dummy fragment header */
        hdr1 = &hdrs->proto_hdr[layer];
        VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, IPV4_FRAG);
+       hdr1->field_selector = 0;
        hdrs->count = ++layer;
 }