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")

Signed-off-by: Wenjun Wu <wenjun1...@intel.com>

---
v2: reword commit log
---
 drivers/net/iavf/iavf_fdir.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/iavf/iavf_fdir.c b/drivers/net/iavf/iavf_fdir.c
index 2869a8b424..32b06044f2 100644
--- a/drivers/net/iavf/iavf_fdir.c
+++ b/drivers/net/iavf/iavf_fdir.c
@@ -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;
 }
 
-- 
2.25.1

Reply via email to