Message ID | 20250319-am65-cpsw-rx-class-v1-0-2bfded07490e@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | net: ethernet: ti: am65-cpsw: add network flow classification support | expand |
On Wed, 19 Mar 2025 15:38:26 +0200 Roger Quadros wrote: > Adds support for -N/--config-nfc ethtool command for > configuring RX classfiers. > > Currently only raw Ethernet (flow-type ether) matching is added > based on source/destination addresses and VLAN Priority (PCP). > > The ALE policer engine is used to perform the matching and routing to > a specific RX channel. > > Test cases: > > Increase number of RX channels to 8 > ip link set eth1 down > ip link set eth0 down > ethtool -L eth0 rx 8 > > 1) Ether source address test > ethtool -N eth0 flow-type ether src xx:yy:zz:aa:bb:cc action 5 > > Traffic from that address should route to channel 5 > > 2) Ether destination address test > ethtool -N eth0 flow-type ether src yy:zz:aa:bb:cc:dd action 4 > > Traffic to that address should route to channel 4 > > 3) Drop test > ethtool -N end0 flow-type ether src xx:yy:zz:aa:bb:cc action -1 > > Traffic from that address should be dropped > > 4) VLAN PCP test > > on Remote create VLAN with ID 5 and all traffic mapping to required priority to test. e.g. 7 > sudo ip link add link eno1 name eno1.5 type vlan id 5 egress-qos-map 0:7 1:7 2:7 3:7 4:7 5:7 6:7 7:7 > sudo ifconfig eno1.5 192.168.10.1 > > on DUT create VLAN with id 5 > ip link add link end0 name end0.5 type vlan id 5 > ifconfig end0.5 192.168.10.5 > > VLAN pcp 7 vid 5 route to RX channel 6 > ethtool -N end0 flow-type ether vlan 0xe005 action 6 > > Traffic from that VLAN with PCP 7 should route to channel 6 No longer applies: Applying: net: ethernet: ti: cpsw_ale: Update Policer fields for more ALE size/ports Applying: net: ethernet: ti: cpsw_ale: return ALE index in cpsw_ale_add_vlan() Applying: net: ethernet: ti: cpsw_ale: return ALE index in cpsw_ale_vlan_add_modify() Applying: net: ethernet: ti: cpsw_ale: return ALE index in cpsw_ale_add_ucast() Applying: net: ethernet: ti: cpsw_ale: add cpsw_ale_policer_reset_entry() Applying: net: ethernet: ti: cpsw_ale: add cpsw_ale_policer_set/clr_entry() Applying: net: ethernet: ti: cpsw_ale: add policer save restore for PM sleep Applying: net: ethernet: ti: am65-cpsw: add network flow classification support Applying: net: ethernet: ti: am65-cpsw: remove cpsw_ale_classifier_setup_default() error: sha1 information is lacking or useless (drivers/net/ethernet/ti/am65-cpsw-nuss.c). error: could not build fake ancestor hint: Use 'git am --show-current-patch=diff' to see the failed patch hint: When you have resolved this problem, run "git am --continue". hint: If you prefer to skip this patch, run "git am --skip" instead. hint: To restore the original branch and stop patching, run "git am --abort". hint: Disable this message with "git config set advice.mergeConflict false" Patch failed at 0009 net: ethernet: ti: am65-cpsw: remove cpsw_ale_classifier_setup_default()
Adds support for -N/--config-nfc ethtool command for configuring RX classfiers. Currently only raw Ethernet (flow-type ether) matching is added based on source/destination addresses and VLAN Priority (PCP). The ALE policer engine is used to perform the matching and routing to a specific RX channel. Test cases: Increase number of RX channels to 8 ip link set eth1 down ip link set eth0 down ethtool -L eth0 rx 8 1) Ether source address test ethtool -N eth0 flow-type ether src xx:yy:zz:aa:bb:cc action 5 Traffic from that address should route to channel 5 2) Ether destination address test ethtool -N eth0 flow-type ether src yy:zz:aa:bb:cc:dd action 4 Traffic to that address should route to channel 4 3) Drop test ethtool -N end0 flow-type ether src xx:yy:zz:aa:bb:cc action -1 Traffic from that address should be dropped 4) VLAN PCP test on Remote create VLAN with ID 5 and all traffic mapping to required priority to test. e.g. 7 sudo ip link add link eno1 name eno1.5 type vlan id 5 egress-qos-map 0:7 1:7 2:7 3:7 4:7 5:7 6:7 7:7 sudo ifconfig eno1.5 192.168.10.1 on DUT create VLAN with id 5 ip link add link end0 name end0.5 type vlan id 5 ifconfig end0.5 192.168.10.5 VLAN pcp 7 vid 5 route to RX channel 6 ethtool -N end0 flow-type ether vlan 0xe005 action 6 Traffic from that VLAN with PCP 7 should route to channel 6 Signed-off-by: Roger Quadros <rogerq@kernel.org> --- Roger Quadros (9): net: ethernet: ti: cpsw_ale: Update Policer fields for more ALE size/ports net: ethernet: ti: cpsw_ale: return ALE index in cpsw_ale_add_vlan() net: ethernet: ti: cpsw_ale: return ALE index in cpsw_ale_vlan_add_modify() net: ethernet: ti: cpsw_ale: return ALE index in cpsw_ale_add_ucast() net: ethernet: ti: cpsw_ale: add cpsw_ale_policer_reset_entry() net: ethernet: ti: cpsw_ale: add cpsw_ale_policer_set/clr_entry() net: ethernet: ti: cpsw_ale: add policer save restore for PM sleep net: ethernet: ti: am65-cpsw: add network flow classification support net: ethernet: ti: am65-cpsw: remove cpsw_ale_classifier_setup_default() drivers/net/ethernet/ti/am65-cpsw-ethtool.c | 348 ++++++++++++++++++++++++++ drivers/net/ethernet/ti/am65-cpsw-nuss.c | 31 ++- drivers/net/ethernet/ti/am65-cpsw-nuss.h | 16 ++ drivers/net/ethernet/ti/am65-cpsw-switchdev.c | 6 +- drivers/net/ethernet/ti/cpsw.c | 4 +- drivers/net/ethernet/ti/cpsw_ale.c | 221 ++++++++++------ drivers/net/ethernet/ti/cpsw_ale.h | 37 ++- drivers/net/ethernet/ti/cpsw_new.c | 4 +- drivers/net/ethernet/ti/cpsw_switchdev.c | 6 +- 9 files changed, 580 insertions(+), 93 deletions(-) --- base-commit: 23c9ff659140f97d44bf6fb59f89526a168f2b86 change-id: 20250305-am65-cpsw-rx-class-666006fab9dd Best regards,