On Wednesday, January 8, 2025 1:08 AM, Stanislav Fomichev <stfomichev@xxxxxxxxx> wrote: >On 01/06, Song Yoong Siang wrote: >> Enable launch time (Time-Based Scheduling) support to XDP zero copy via XDP >> Tx metadata framework. >> >> This patch is tested with tools/testing/selftests/bpf/xdp_hw_metadata on >> Intel Tiger Lake platform. Below are the test steps and result. >> >> Test Steps: >> 1. Add mqprio qdisc: >> $ sudo tc qdisc add dev enp0s30f4 handle 8001: parent root mqprio num_tc >> 4 map 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 queues 1@0 1@1 1@2 1@3 hw 0 >> >> 2. Enable launch time hardware offload on hardware queue 1: >> $ sudo tc qdisc replace dev enp0s30f4 parent 8001:2 etf offload clockid >> CLOCK_TAI delta 500000 >> >> 3. Add an ingress qdisc: >> $ sudo tc qdisc add dev enp0s30f4 ingress >> >> 4. Add a flower filter to route incoming packet with VLAN priority 1 into >> hardware queue 1: >> $ sudo tc filter add dev enp0s30f4 parent ffff: protocol 802.1Q flower >> vlan_prio 1 hw_tc 1 >> >> 5. Enable VLAN tag stripping: >> $ sudo ethtool -K enp0s30f4 rxvlan on >> >> 6. Start xdp_hw_metadata selftest application: >> $ sudo ./xdp_hw_metadata enp0s30f4 -l 1000000000 >> >> 7. Send an UDP packet with VLAN priority 1 to port 9091 of DUT. > >Tangential: I wonder whether we can add the setup steps to the >xdp_hw_metadata tool? It is useful to have one command to run that >takes care of all the details. Same way it already enables HW >tstamping.. > >Or, if not the full setup, some kind of detection we can signal to the >user that some things might be missing? Sure. I can try to add the setup steps into xdp_hw_metadata by using ioctl() function. However, there are some device specific command, like the number of queue, their priority, how they route the incoming packet, etc. I will try to find out a common way that can work for most of the devices, at least work for both igc and stmmac. Thanks & Regards Siang