1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet
Jakub Buchocki ae67389c53 ice: Implement 'flow-type ether' rules
Add support for 'flow-type ether' Flow Director rules via ethtool.

Create packet segment info for filter configuration based on ethtool
command parameters. Reuse infrastructure already created for
ipv4 and ipv6 flows to convert packet segment into
extraction sequence, which is later used to program the filter
inside Flow Director block of the Rx pipeline.

Rules not containing masks are processed by the Flow Director,
and support the following set of input parameters in all combinations:
src, dst, proto, vlan-etype, vlan, action.

It is possible to specify address mask in ethtool parameters but only
00:00:00:00:00 and FF:FF:FF:FF:FF are valid.
The same applies to proto, vlan-etype and vlan masks:
only 0x0000 and 0xffff masks are valid.

Testing:
  (DUT) iperf3 -s
  (DUT) ethtool -U ens785f0np0 flow-type ether dst <ens785f0np0 mac> \
        action 10
  (DUT) watch 'ethtool -S ens785f0np0 | grep rx_queue'
  (LP)  iperf3 -c ${DUT_IP}

  Counters increase only for:
    'rx_queue_10_packets'
    'rx_queue_10_bytes'

Signed-off-by: Jakub Buchocki <jakubx.buchocki@intel.com>
Co-developed-by: Mateusz Pacuszka <mateuszx.pacuszka@intel.com>
Signed-off-by: Mateusz Pacuszka <mateuszx.pacuszka@intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Lukasz Plachno <lukasz.plachno@intel.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2024-04-12 10:34:24 -07:00
..
3com net: handle HAS_IOPORT dependencies 2024-04-08 11:56:56 +01:00
8390 net: handle HAS_IOPORT dependencies 2024-04-08 11:56:56 +01:00
actions net: ethernet: actions: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
adaptec
adi Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-02-29 14:24:56 -08:00
aeroflex net: ethernet: aeroflex: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
agere
alacritech
allwinner net: ethernet: allwinner: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
alteon
altera net: ethernet: Use device_get_match_data() 2023-10-13 10:04:53 +01:00
amazon net: ena: Set tx_info->xdpf value to NULL 2024-04-11 11:21:02 +02:00
amd Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-11 14:23:47 -07:00
apm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-10-26 13:46:28 -07:00
apple powerpc/macio: Make remove callback of macio driver void returned 2024-03-07 23:06:19 +11:00
aquantia net: atlantic: convert EEE handling to use linkmode bitmaps 2024-02-09 12:55:46 -08:00
arc net: ethernet: arc: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
asix net: asix: fix fortify warning 2023-12-12 13:20:37 -08:00
atheros ethernet: atheros: fix a memleak in atl1e_setup_ring_resources 2023-12-15 10:55:35 +00:00
broadcom Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-11 14:23:47 -07:00
brocade bnad: fix work_queue type mismatch 2024-02-14 12:49:47 +00:00
cadence net: macb: Convert to ndo_hwtstamp_get() and ndo_hwtstamp_set() 2023-11-18 14:52:57 +00:00
calxeda net: ethernet: calxeda: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
cavium net: fill in MODULE_DESCRIPTION()s for liquidio 2024-01-24 15:12:20 -08:00
chelsio net: mirror skb frag ref/unref helpers 2024-04-11 19:29:23 -07:00
cirrus net: fill in MODULE_DESCRIPTION()s for ep93xxx_eth 2024-01-24 15:12:20 -08:00
cisco Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-02-22 15:29:26 -08:00
cortina net: ethernet: cortina: Drop TSO support 2024-01-07 16:05:00 +00:00
davicom net: ethernet: davicom: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
dec net: tulip: Annotate struct mediatable with __counted_by 2023-10-02 11:24:55 -07:00
dlink net: dl2k: Use proper conversion of dev_addr before IO to device 2023-12-12 11:25:36 +01:00
emulex netlink: introduce type-checking attribute iteration 2024-03-29 15:06:02 -07:00
engleder Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-02-08 15:30:33 -08:00
ezchip net: fill in MODULE_DESCRIPTION()s for nps_enet 2024-01-24 15:12:20 -08:00
faraday net: ethernet: faraday: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-04 18:01:07 -07:00
fujitsu net: handle HAS_IOPORT dependencies 2024-04-08 11:56:56 +01:00
fungible net: ethtool: pass a pointer to parameters to get/set_rxfh ethtool ops 2023-12-13 22:07:16 -08:00
google gve: add support to change ring size via ethtool 2024-04-03 11:11:15 +01:00
hisilicon net: hns3: mark unexcuted loopback test result as UNEXECUTED 2024-03-26 15:32:39 +01:00
huawei net: ethtool: pass a pointer to parameters to get/set_rxfh ethtool ops 2023-12-13 22:07:16 -08:00
i825xx net/sun3_82586: Avoid reading past buffer in debug output 2024-02-08 18:41:10 -08:00
ibm mm, treewide: rename MAX_ORDER to MAX_PAGE_ORDER 2024-01-08 15:27:15 -08:00
intel ice: Implement 'flow-type ether' rules 2024-04-12 10:34:24 -07:00
litex net: fill in MODULE_DESCRIPTION()s for litex 2024-01-24 15:12:21 -08:00
marvell net: move skb ref helpers to new header 2024-04-11 19:29:22 -07:00
mediatek net: ethernet: mtk_eth_soc: Reuse value using READ_ONCE instead of re-rereading it 2024-04-04 15:46:52 +02:00
mellanox net/mlx5e: Expose the VF/SF RX drop counter on the representor 2024-04-11 19:31:12 -07:00
micrel net: ks8851: Handle softirqs at the end of IRQ thread to fix hang 2024-04-08 19:48:48 -07:00
microchip Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-11 14:23:47 -07:00
microsoft Merge branch mana-ib-flex of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git 2024-04-11 07:38:28 -07:00
moxa net: ethernet: moxa:: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
mscc net: ocelot: update the MODULE_DESCRIPTION() 2024-02-05 12:35:18 +00:00
myricom
natsemi net: ethernet: natsemi: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
neterion net: fill in MODULE_DESCRIPTION()s for s2io 2024-01-11 16:16:08 -08:00
netronome nfp: update devlink device info output 2024-04-12 11:40:09 +01:00
ni netdev: replace napi_reschedule with napi_schedule 2023-10-11 17:28:06 -07:00
nvidia net: remove stale mentions of dev_base_lock in comments 2024-02-14 11:20:13 +00:00
nxp net: ethernet: nxp: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
oki-semi
packetengines
pasemi
pensando ionic: keep stats struct local to error handling 2024-03-08 11:54:35 +00:00
qlogic qed: avoid truncating work queue length 2024-03-29 12:22:28 -07:00
qualcomm TTY/Serial driver update for 6.9-rc1 2024-03-21 12:44:10 -07:00
rdc
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-11 14:23:47 -07:00
renesas Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-04 18:01:07 -07:00
rocker rocker: Don't bother filling in ethtool driver version 2024-02-23 18:03:53 -08:00
samsung net: sxgbe: remove eee_enabled/eee_active in sxgbe_get_eee() 2024-02-07 09:03:37 -08:00
seeq net: ethernet: seeq: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
sfc net: introduce include/net/rps.h 2024-03-07 21:12:43 -08:00
sgi net: ethernet: sgi: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
silan
sis net: handle HAS_IOPORT dependencies 2024-04-08 11:56:56 +01:00
smsc net: handle HAS_IOPORT dependencies 2024-04-08 11:56:56 +01:00
socionext eth: link netdev to page_pools in drivers 2023-11-28 15:48:39 +01:00
stmicro Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-11 14:23:47 -07:00
sun net: mirror skb frag ref/unref helpers 2024-04-11 19:29:23 -07:00
sunplus net: ethernet: sunplus: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
synopsys
tehuti
ti net: ti: icssg-prueth: Add ICSSG Ethernet driver for AM65x SR1.0 platforms 2024-04-09 09:47:29 +02:00
toshiba Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-02-29 14:24:56 -08:00
tundra net: ethernet: tundra: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
vertexcom net: vertexcom: mse102x: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:46 +00:00
via net: handle HAS_IOPORT dependencies 2024-04-08 11:56:56 +01:00
wangxun net: txgbe: fix i2c dev name cannot match clkdev 2024-04-03 19:21:04 -07:00
wiznet ethernet: wiznet: Use devm_platform_get_and_ioremap_resource() in w5300_hw_probe() 2024-02-09 12:27:36 -08:00
xilinx net: axienet: Fix kernel doc warnings 2024-03-29 12:41:22 -07:00
xircom net: handle HAS_IOPORT dependencies 2024-04-08 11:56:56 +01:00
xscale net: xscale: Drop unused PHY number 2023-11-01 22:15:15 -07:00
dnet.c net: ethernet: dnet: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
dnet.h
ec_bhf.c net: fill in MODULE_DESCRIPTION()s for ec_bhf 2024-01-29 12:12:51 +00:00
ethoc.c net: ethernet: ethoc: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
fealnx.c
jme.c
jme.h
Kconfig net: ethernet: remove duplicated CONFIG_SUNGEM_PHY entry 2024-02-07 13:17:51 +00:00
korina.c net: ethernet: korina: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
lantiq_etop.c net: ethernet: lantiq_etop: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
lantiq_xrx200.c net: ethernet: lantiq_xrx200: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
Makefile