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