linux/drivers/net/ethernet/intel/ice
Maciej Fijalkowski c61bcebde7 ice: Prepare legacy-rx for upcoming XDP multi-buffer support
Rx path is going to be modified in a way that fragmented frame will be
gathered within xdp_buff in the first place. This approach implies that
underlying buffer has to provide tailroom for skb_shared_info. This is
currently the case when ring uses build_skb but not when legacy-rx knob
is turned on. This case configures 2k Rx buffers and has no way to
provide either headroom or tailroom - FWIW it currently has
XDP_PACKET_HEADROOM which is broken and in here it is removed. 2k Rx
buffers were used so driver in this setting was able to support 9k MTU
as it can chain up to 5 Rx buffers. With offset configuring HW writing
2k of a data was passing the half of the page which broke the assumption
of our internal page recycling tricks.

Now if above got fixed and legacy-rx path would be left as is, when
referring to skb_shared_info via xdp_get_shared_info_from_buff(),
packet's content would be corrupted again. Hence size of Rx buffer needs
to be lowered and therefore supported MTU. This operation will allow us
to keep the unified data path and with 8k MTU users (if any of
legacy-rx) would still be good to go. However, tendency is to drop the
support for this code path at some point.

Add ICE_RXBUF_1664 as vsi::rx_buf_len and ICE_MAX_FRAME_LEGACY_RX (8320)
as vsi::max_frame for legacy-rx. For bigger page sizes configure 3k Rx
buffers, not 2k.

Since headroom support is removed, disable data_meta support on legacy-rx.
When preparing XDP buff, rely on ice_rx_ring::rx_offset setting when
deciding whether to support data_meta or not.

Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Alexander Lobakin <alexandr.lobakin@intel.com>
Link: https://lore.kernel.org/bpf/20230131204506.219292-2-maciej.fijalkowski@intel.com
2023-02-01 23:30:26 +01:00
..
ice.h ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00
ice_adminq_cmd.h ice: Add 'Execute Pending LLDP MIB' Admin Queue command 2023-01-19 08:18:03 -08:00
ice_arfs.c
ice_arfs.h
ice_base.c ice: Prepare legacy-rx for upcoming XDP multi-buffer support 2023-02-01 23:30:26 +01:00
ice_base.h
ice_cgu_regs.h
ice_common.c ice: Add 'Execute Pending LLDP MIB' Admin Queue command 2023-01-19 08:18:03 -08:00
ice_common.h ice: Match parameter name for ice_cfg_phy_fc() 2023-01-19 08:18:03 -08:00
ice_controlq.c
ice_controlq.h
ice_dcb.c ice: Handle LLDP MIB Pending change 2023-01-19 08:18:03 -08:00
ice_dcb.h ice: Handle LLDP MIB Pending change 2023-01-19 08:18:03 -08:00
ice_dcb_lib.c ice: Explicitly return 0 2023-01-19 08:18:03 -08:00
ice_dcb_lib.h
ice_dcb_nl.c
ice_dcb_nl.h
ice_ddp.c ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_ddp.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_devids.h
ice_devlink.c ice: remove pointless calls to devlink_param_driverinit_value_set() 2023-01-27 12:32:02 +00:00
ice_devlink.h ice: Prevent ADQ, DCB coexistence with Custom Tx scheduler 2022-11-17 21:41:28 -08:00
ice_eswitch.c
ice_eswitch.h
ice_ethtool.c ice: Explicitly return 0 2023-01-19 08:18:03 -08:00
ice_ethtool_fdir.c
ice_fdir.c
ice_fdir.h
ice_flex_pipe.c ice: Reduce scope of variables 2023-01-19 08:18:03 -08:00
ice_flex_pipe.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flex_type.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flow.c
ice_flow.h
ice_fltr.c
ice_fltr.h
ice_fw_update.c
ice_fw_update.h
ice_gnss.c ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00
ice_gnss.h ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00
ice_hw_autogen.h
ice_idc.c
ice_idc_int.h
ice_lag.c
ice_lag.h
ice_lan_tx_rx.h ice: Remove and replace ice speed defines with ethtool.h versions 2022-11-23 08:59:42 -08:00
ice_lib.c ice: Prepare legacy-rx for upcoming XDP multi-buffer support 2023-02-01 23:30:26 +01:00
ice_lib.h ice: Fix spurious interrupt during removal of trusted VF 2022-11-09 13:20:38 -08:00
ice_main.c ice: Prepare legacy-rx for upcoming XDP multi-buffer support 2023-02-01 23:30:26 +01:00
ice_nvm.c ice: Remove cppcheck suppressions 2023-01-19 08:18:03 -08:00
ice_nvm.h
ice_osdep.h
ice_pf_vsi_vlan_ops.c
ice_pf_vsi_vlan_ops.h
ice_protocol_type.h
ice_ptp.c ice: restrict PTP HW clock freq adjustments to 100, 000, 000 PPB 2023-01-19 08:18:03 -08:00
ice_ptp.h ice: handle flushing stale Tx timestamps in ice_ptp_tx_tstamp 2022-12-08 13:15:03 -08:00
ice_ptp_consts.h
ice_ptp_hw.c ice: make Tx and Rx vernier offset calibration independent 2022-12-08 13:15:03 -08:00
ice_ptp_hw.h ice: make Tx and Rx vernier offset calibration independent 2022-12-08 13:15:03 -08:00
ice_repr.c ice: Accumulate ring statistics over reset 2022-11-23 08:59:43 -08:00
ice_repr.h
ice_sbq_cmd.h
ice_sched.c ice: Reduce scope of variables 2023-01-19 08:18:03 -08:00
ice_sched.h ice: Add an option to pre-allocate memory for ice_sched_node 2022-11-17 21:41:28 -08:00
ice_sriov.c
ice_sriov.h
ice_switch.c
ice_switch.h
ice_tc_lib.c ice: Support drop action 2023-01-19 08:18:03 -08:00
ice_tc_lib.h ice: Support drop action 2023-01-19 08:18:03 -08:00
ice_trace.h
ice_txrx.c ice: Prepare legacy-rx for upcoming XDP multi-buffer support 2023-02-01 23:30:26 +01:00
ice_txrx.h ice: Prepare legacy-rx for upcoming XDP multi-buffer support 2023-02-01 23:30:26 +01:00
ice_txrx_lib.c ice: Accumulate ring statistics over reset 2022-11-23 08:59:43 -08:00
ice_txrx_lib.h
ice_type.h ice: Prevent ADQ, DCB coexistence with Custom Tx scheduler 2022-11-17 21:41:28 -08:00
ice_vf_lib.c ice: virtchnl rss hena support 2022-11-14 10:44:38 +00:00
ice_vf_lib.h
ice_vf_lib_private.h ice: virtchnl rss hena support 2022-11-14 10:44:38 +00:00
ice_vf_mbx.c ice: Remove and replace ice speed defines with ethtool.h versions 2022-11-23 08:59:42 -08:00
ice_vf_mbx.h
ice_vf_vsi_vlan_ops.c
ice_vf_vsi_vlan_ops.h
ice_virtchnl.c ice: Fix configuring VIRTCHNL_OP_CONFIG_VSI_QUEUES with unbalanced queues 2022-11-23 08:59:43 -08:00
ice_virtchnl.h ice: virtchnl rss hena support 2022-11-14 10:44:38 +00:00
ice_virtchnl_allowlist.c
ice_virtchnl_allowlist.h
ice_virtchnl_fdir.c
ice_virtchnl_fdir.h
ice_vlan.h
ice_vlan_mode.c
ice_vlan_mode.h
ice_vsi_vlan_lib.c
ice_vsi_vlan_lib.h
ice_vsi_vlan_ops.c
ice_vsi_vlan_ops.h
ice_xsk.c ice: xsk: do not use xdp_return_frame() on tx_buf->raw_buf 2022-12-21 17:46:49 -08:00
ice_xsk.h
Makefile ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00