1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/intel
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
..
e1000 net: intel: implement modern PM ops declarations 2024-03-29 08:58:43 -07:00
e1000e e1000e: Remove redundant runtime resume for ethtool_ops 2024-04-08 13:25:39 -07:00
fm10k net: intel: implement modern PM ops declarations 2024-03-29 08:58:43 -07:00
i40e Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-04 18:01:07 -07:00
iavf net: intel: implement modern PM ops declarations 2024-03-29 08:58:43 -07:00
ice ice: Implement 'flow-type ether' rules 2024-04-12 10:34:24 -07:00
idpf Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-04 18:01:07 -07:00
igb igb: Remove redundant runtime resume for ethtool_ops 2024-04-08 13:25:39 -07:00
igbvf net: intel: implement modern PM ops declarations 2024-03-29 08:58:43 -07:00
igc igc: Remove redundant runtime resume for ethtool ops 2024-04-08 13:25:39 -07:00
ixgbe Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 2024-04-01 21:44:12 -07:00
ixgbevf net: intel: implement modern PM ops declarations 2024-03-29 08:58:43 -07:00
e100.c net: intel: implement modern PM ops declarations 2024-03-29 08:58:43 -07:00
Kconfig net: handle HAS_IOPORT dependencies 2024-04-08 11:56:56 +01:00
Makefile idpf: add SRIOV support and other ndo_ops 2023-09-13 14:59:24 -07:00