mirror_ubuntu-kernels/drivers/net/ethernet/intel/ice
Nick Nunley 1b0b0b581b ice: Implement flow for IPv6 next header (extension header)
This patch is based on a similar change to i40e by Slawomir Laba:
"i40e: Implement flow for IPv6 next header (extension header)".

When a packet contains an IPv6 header with next header which is
an extension header and not a protocol one, the kernel function
skb_transport_header called with such sk_buff will return a
pointer to the extension header and not to the TCP one.

The above explained call caused a problem with packet processing
for skb with encapsulation for tunnel with ICE_TX_CTX_EIPT_IPV6.
The extension header was not skipped at all.

The ipv6_skip_exthdr function does check if next header of the IPV6
header is an extension header and doesn't modify the l4_proto pointer
if it points to a protocol header value so its safe to omit the
comparison of exthdr and l4.hdr pointers. The ipv6_skip_exthdr can
return value -1. This means that the skipping process failed
and there is something wrong with the packet so it will be dropped.

Fixes: a4e82a81f5 ("ice: Add support for tunnel offloads")
Signed-off-by: Nick Nunley <nicholas.d.nunley@intel.com>
Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2021-01-26 10:43:49 -08:00
..
ice_adminq_cmd.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
ice_arfs.c ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_arfs.h ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_base.c xsk: Propagate napi_id to XDP socket Rx path 2020-12-01 00:09:25 +01:00
ice_base.h ice: Add support to enable/disable all Rx queues before waiting 2020-02-15 16:39:55 -08:00
ice_common.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_common.h ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_controlq.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_controlq.h ice: Handle critical FW error during admin queue initialization 2020-05-27 17:48:23 -07:00
ice_dcb_lib.c ice: fix link event handling timing 2020-07-29 08:38:54 -07:00
ice_dcb_lib.h ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_dcb_nl.c ice: remove unused macro 2020-05-27 17:03:40 -07:00
ice_dcb_nl.h
ice_dcb.c ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_dcb.h ice: replace single-element array used for C struct hack 2020-07-01 16:35:23 -07:00
ice_devids.h ice: fix define for E822 backplane device 2020-02-19 13:39:33 -08:00
ice_devlink.c devlink: move flash end and begin to core devlink 2020-11-19 21:41:02 -08:00
ice_devlink.h ice: refactor devlink_port to be per-VSI 2020-10-09 13:14:19 -07:00
ice_ethtool_fdir.c ice: fix FDir IPv6 flexbyte 2021-01-26 10:43:49 -08:00
ice_ethtool.c ice: add useful statistics 2020-08-01 08:44:04 -07:00
ice_fdir.c ice: remove unused args from ice_get_open_tunnel_port() 2020-09-28 12:50:12 -07:00
ice_fdir.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_flex_pipe.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_flex_pipe.h ice: convert to new udp_tunnel infrastructure 2020-09-28 12:50:12 -07:00
ice_flex_type.h ice: convert to new udp_tunnel infrastructure 2020-09-28 12:50:12 -07:00
ice_flow.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_flow.h ice: Fix pointer cast warnings 2020-10-09 13:14:19 -07:00
ice_fltr.c ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fltr.h ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fw_update.c ice: add additional debug logging for firmware update 2020-10-09 13:14:19 -07:00
ice_fw_update.h ice: add support for flash update overwrite mask 2020-09-25 17:20:57 -07:00
ice_hw_autogen.h ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_lan_tx_rx.h ice: update PTYPE lookup table 2020-08-01 08:44:04 -07:00
ice_lib.c ice: refactor devlink_port to be per-VSI 2020-10-09 13:14:19 -07:00
ice_lib.h ice: fix memory leak if register_netdev_fails 2020-09-25 07:39:24 -07:00
ice_main.c ice: Add space to unknown speed 2020-12-09 08:11:55 -08:00
ice_nvm.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_nvm.h ice: Add AdminQ commands for FW update 2020-07-28 17:07:06 -07:00
ice_osdep.h
ice_protocol_type.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_sched.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_sched.h ice: avoid unnecessary single-member variable-length structs 2020-07-01 16:33:29 -07:00
ice_sriov.c ice: remove unnecessary fallthrough comments 2020-02-15 16:56:48 -08:00
ice_sriov.h
ice_status.h ice: Handle critical FW error during admin queue initialization 2020-05-27 17:48:23 -07:00
ice_switch.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_switch.h ice: Initialize Flow Director resources 2020-05-22 21:26:37 -07:00
ice_txrx_lib.c ice: add useful statistics 2020-08-01 08:44:04 -07:00
ice_txrx_lib.h ice: Rename build_ctob to ice_build_ctob 2020-05-21 22:10:04 -07:00
ice_txrx.c ice: Implement flow for IPv6 next header (extension header) 2021-01-26 10:43:49 -08:00
ice_txrx.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
ice_type.h ice: convert to new udp_tunnel infrastructure 2020-09-28 12:50:12 -07:00
ice_virtchnl_pf.c ice: remove repeated words 2020-10-09 13:14:19 -07:00
ice_virtchnl_pf.h ice: Allow 2 queue pairs per VF on SR-IOV initialization 2020-08-01 08:44:04 -07:00
ice_xsk.c ice, xsk: clear the status bits for the next_to_use descriptor 2020-12-16 10:51:07 -08:00
ice_xsk.h xsk: i40e: ice: ixgbe: mlx5: Pass buffer pool to driver instead of umem 2020-08-31 21:15:03 +02:00
ice.h ice: Remove vlan_ena from vsi structure 2020-12-09 08:11:54 -08:00
Makefile ice: implement device flash update via devlink 2020-07-28 17:07:06 -07:00