ice: fix FDir IPv6 flexbyte
The packet classifier would occasionally misrecognize an IPv6 training packet when the next protocol field was 0. The correct value for unspecified protocol is IPPROTO_NONE. Fixes: 165d80d6adab ("ice: Support IPv6 Flow Director filters") Signed-off-by: Henry Tieman <henry.w.tieman@intel.com> Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de> Tested-by: Tony Brelinski <tonyx.brelinski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
parent
07d46d93c9
commit
29e2d9eb82
@ -1576,7 +1576,13 @@ ice_set_fdir_input_set(struct ice_vsi *vsi, struct ethtool_rx_flow_spec *fsp,
|
||||
sizeof(struct in6_addr));
|
||||
input->ip.v6.l4_header = fsp->h_u.usr_ip6_spec.l4_4_bytes;
|
||||
input->ip.v6.tc = fsp->h_u.usr_ip6_spec.tclass;
|
||||
|
||||
/* if no protocol requested, use IPPROTO_NONE */
|
||||
if (!fsp->m_u.usr_ip6_spec.l4_proto)
|
||||
input->ip.v6.proto = IPPROTO_NONE;
|
||||
else
|
||||
input->ip.v6.proto = fsp->h_u.usr_ip6_spec.l4_proto;
|
||||
|
||||
memcpy(input->mask.v6.dst_ip, fsp->m_u.usr_ip6_spec.ip6dst,
|
||||
sizeof(struct in6_addr));
|
||||
memcpy(input->mask.v6.src_ip, fsp->m_u.usr_ip6_spec.ip6src,
|
||||
|
Loading…
x
Reference in New Issue
Block a user