Bug 2218500

Summary: xdp-tools update for RHEL9.3
Product: Red Hat Enterprise Linux 9 Reporter: Toke Høiland-Jørgensen <thoiland>
Component: xdp-toolsAssignee: Toke Høiland-Jørgensen <thoiland>
Status: CLOSED ERRATA QA Contact: Rick Alongi <ralongi>
Severity: unspecified Docs Contact: Jaroslav Klech <jklech>
Priority: unspecified    
Version: 9.3CC: ctrautma, jhsiao, jklech, ralongi
Target Milestone: rcKeywords: Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: xdp-tools-1.4.0-1.el9 Doc Type: Enhancement
Doc Text:
.The `xdp-tools` package rebased to version 1.4.0 The `xdp-tools` package has been upgraded to version 1.4.0, which provides multiple bug fixes and enhancements. Notable changes include: * The `xdp-bench` utility gained support for multi-buffer eXpress Data Path (XDP) and for benchmarking the `xdp_load_bytes()` helper in the kernel. This feature enables conducting network benchmarking tests with large maximum transmission units (MTUs). * The locking of the command line utilities of `xdp-tools` was improved to prevent stale locks if the utility did not exit cleanly. * The `libxdp` library contains a new `pass:[xsk_umem__create_with_fd()]` API that accepts an extra file descriptor of an already open `AF_XDP` socket. You can use this function as a substitute for the regular `pass:[xsk_umem__create()]` function when a process does not have `CAP_NET_RAW` privileges.
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-07 08:36:03 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Toke Høiland-Jørgensen 2023-06-29 12:23:54 UTC
We're planning to bump the release of xdp-tools for RHEL 9.3 to incorporate new features and bug fixes.

Comment 1 Toke Høiland-Jørgensen 2023-07-07 21:48:17 UTC
Build available here: https://brewweb.engineering.redhat.com/brew/buildinfo?buildID=2580574

Comment 2 Jean-Tsung Hsiao 2023-07-19 15:30:36 UTC
Hi Toke,
What particular test or tests needed to pre-verify the build ?
Thanks!
Jean

Comment 3 Jean-Tsung Hsiao 2023-07-19 15:42:51 UTC
Hi Toke,
What particular test or tests needed to pre-verify the build ?
Thanks!
Jean

Comment 10 Jean-Tsung Hsiao 2023-07-21 16:15:40 UTC
Hi Toke,
Please review Comment 8 and 9.
Is it enough to set the status to VERIFIED ?
Thanks!
Jean

Comment 11 Jean-Tsung Hsiao 2023-07-21 17:50:28 UTC
After rebuilding xdp-loader using libbpf-1.2.0-1.el9:


Running all tests from ./tests
    Running tests from ./tests/xdp-bench/test-xdp-bench.sh
     [test_drop]                   PASS
     [test_pass]                   PASS
     [test_tx]                     PASS
     [test_xdp_load_bytes]         PASS
     [test_rxq_stats]              PASS
     [test_redirect]               PASS
     [test_redirect_cpu]           PASS
     [test_redirect_map]           PASS
     [test_redirect_map_egress]    PASS
     [test_redirect_multi]         PASS
     [test_redirect_multi_egress]  PASS
    Running tests from ./tests/xdpdump/test-xdpdump.sh
     [test_help]                   PASS
     [test_interfaces]             PASS
     [test_capt_pcap]              PASS
     [test_capt_pcapng]            PASS
     [test_capt_term]              PASS
     [test_exitentry]              PASS
     [test_snap]                   PASS
     [test_multi_pkt]              PASS
     [test_perf_wakeup]            PASS
     [test_promiscuous_selfload]   PASS
     [test_promiscuous_preload]    PASS
     [test_none_xdp]               PASS
     [test_pname_parse]            PASS
     [test_multi_prog]             PASS
     [test_xdp_load]               PASS
    Running tests from ./tests/xdp-filter/test-xdp-filter.sh
     [test_load]                   PASS
     [test_print]                  PASS
     [test_output_remove]          PASS
     [test_ports_allow]            PASS
     [test_ports_deny]             PASS
     [test_ipv6_allow]             PASS
     [test_ipv6_deny]              PASS
     [test_ipv4_allow]             PASS
     [test_ipv4_deny]              PASS
     [test_ether_allow]            PASS
     [test_ether_deny]             PASS
     [test_python_basic]           SKIPPED
     [test_python_slow]            SKIPPED
    Running tests from ./tests/xdp-loader/test-xdp-loader.sh
     [test_load]                   PASS
     [test_section]                PASS
     [test_prog_name]              PASS
     [test_load_multi]             PASS
     [test_load_incremental]       PASS
     [test_load_clobber]           PASS
     [test_features]               PASS
    Running tests from ./tests/xdp-monitor/test-xdp-monitor.sh
     [test_monitor]                PASS
    Running tests from ./tests/xdp-trafficgen/test-xdp-trafficgen.sh
     [test_udp]                    PASS
     [test_tcp]                    PASS
[root@netqe1 xdp-tools]# 

[root@netqe1 xdp-tools]# rpm -q libbpf
libbpf-1.2.0-1.el9.x86_64
[root@netqe1 xdp-tools]#

Comment 12 Jean-Tsung Hsiao 2023-07-25 02:44:45 UTC
Manually, passed xdp_traffgen: xdp-trafficgen udp -m 00:de:ad:de:ad:01 -a abcd::1 ens1f0np0 -t 16

lo->ens1f0np0                   0 err/s        19,446,486 xmit/s       
lo->ens1f0np0                   0 err/s        19,481,960 xmit/s       
lo->ens1f0np0                   0 err/s        19,467,735 xmit/s       
lo->ens1f0np0                   0 err/s        19,483,938 xmit/s       
lo->ens1f0np0                   0 err/s        19,486,515 xmit/s       
lo->ens1f0np0                   0 err/s        19,475,911 xmit/s       
lo->ens1f0np0                   0 err/s        19,299,750 xmit/s       
lo->ens1f0np0                   0 err/s        19,260,802 xmit/s       
lo->ens1f0np0                   0 err/s        19,152,162 xmit/s

Comment 13 Jean-Tsung Hsiao 2023-07-25 03:01:17 UTC
Got issue against TCP mode: xdp-trafficgen tcp -i ens1f0np0 192.168.3.1

[root@netqe4 ~]# ip r
default via 10.19.15.254 dev eno1 proto dhcp src 10.19.15.11 metric 104 
10.19.15.0/24 dev eno1 proto kernel scope link src 10.19.15.11 metric 104 
192.168.3.0/24 dev ens1f0np0 proto kernel scope link src 192.168.3.4 
[root@netqe4 ~]#
[root@netqe4 ~]# ping -c 3 192.168.3.1
PING 192.168.3.1 (192.168.3.1) 56(84) bytes of data.
64 bytes from 192.168.3.1: icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from 192.168.3.1: icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from 192.168.3.1: icmp_seq=3 ttl=64 time=0.046 ms

--- 192.168.3.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2069ms
rtt min/avg/max/mdev = 0.039/0.044/0.049/0.004 ms

[root@netqe4 ~]# xdp-trafficgen tcp -i ens1f0np0 192.168.3.1
Couldn't resolve hostname: Address family for hostname not supported
[root@netqe4 ~]# 

Hi Toke,
Please advise!
Thanks!
Jean

Comment 14 Toke Høiland-Jørgensen 2023-08-07 14:19:50 UTC
The tcp-trafficgen utility only supports IPv6. It looks like you ran the UDP test over IPv6, any reason you can't do the same for the TCP test? :)

Also, nice work getting everything tested while I was away!

Comment 15 Jean-Tsung Hsiao 2023-08-07 16:03:11 UTC
(In reply to Toke Høiland-Jørgensen from comment #14)
> The tcp-trafficgen utility only supports IPv6. It looks like you ran the UDP
I see.
NOTE: I have passed the project to Rick.

> test over IPv6, any reason you can't do the same for the TCP test? :)
> 
> Also, nice work getting everything tested while I was away!
Was trying to get some bugs done before heading for a new adventure.
It's been great working with you.
Thanks!
Jean

Comment 16 Toke Høiland-Jørgensen 2023-08-07 19:38:32 UTC
(In reply to Jean-Tsung Hsiao from comment #15)
> (In reply to Toke Høiland-Jørgensen from comment #14)
> > The tcp-trafficgen utility only supports IPv6. It looks like you ran the UDP
> I see.
> NOTE: I have passed the project to Rick.

Right, gotcha! Rick, let me know if you need anything more from my side!

> > test over IPv6, any reason you can't do the same for the TCP test? :)
> > 
> > Also, nice work getting everything tested while I was away!
> Was trying to get some bugs done before heading for a new adventure.
> It's been great working with you.

Likewise - good luck on your new adventures! :)

-Toke

Comment 18 Rick Alongi 2023-09-08 17:54:51 UTC
Completed Verification by sending xdp-trafficgen traffic successfully:

[root@netqe2 ~]# xdp-trafficgen udp -a 2000::2 ens1f0 -t 16
Transmitting on ens1f0 (ifindex 11)
lo->ens1f0                      0 err/s        35,015,965 xmit/s       
lo->ens1f0                      0 err/s        35,511,716 xmit/s       
lo->ens1f0                      0 err/s        35,511,059 xmit/s       
lo->ens1f0                      0 err/s        35,510,859 xmit/s       
lo->ens1f0                      0 err/s        35,510,574 xmit/s       

[root@netqe2 ~]# xdp-trafficgen tcp -i ens1f0 2000::2
Connected to 2000::2 port 10000 from 2000::1 port 55182
lo->ens1f0                      0 err/s         1,939,423 xmit/s       
lo->ens1f0                      0 err/s         1,922,145 xmit/s       
lo->ens1f0                      0 err/s         1,921,822 xmit/s       
lo->ens1f0                      0 err/s         1,924,493 xmit/s       
lo->ens1f0                      0 err/s         1,922,445 xmit/s       

[root@netqe2 ~]# rpm -qa | grep xdp
libxdp-1.4.0-1.el9.x86_64
libxdp-devel-1.4.0-1.el9.x86_64
libxdp-static-1.4.0-1.el9.x86_64
xdp-tools-1.4.0-1.el9.x86_64

[root@netqe2 ~]# uname -r
5.14.0-362.1.1.el9_3.x86_64

Comment 20 Toke Høiland-Jørgensen 2023-09-21 13:42:23 UTC
Sure, added some text; hoping you can work from that :)

Comment 22 Toke Høiland-Jørgensen 2023-09-21 16:00:06 UTC
No, your version is definitely better, thanks! Just fixed a few wording nits, otherwise LGTM :)

BTW, we also separately added a known issue for xdp-tools, see https://issues.redhat.com/browse/RHEL-3382 - not sure if those need to be cross-referenced somehow? I left the 'features' command out of the doc text here since it's broken as per that other issue...

Comment 23 Jaroslav Klech 2023-09-22 08:51:15 UTC
(In reply to Toke Høiland-Jørgensen from comment #22)
 
> BTW, we also separately added a known issue for xdp-tools, see
> https://issues.redhat.com/browse/RHEL-3382 - not sure if those need to be
> cross-referenced somehow? I left the 'features' command out of the doc text
> here since it's broken as per that other issue...

I think that known issue should be documented just as a separate release note. Since it is a known issue i would not mention it in this rebase. Typically, the docs team tends to mention in the rebases just new features and bugfixes.

Comment 24 Toke Høiland-Jørgensen 2023-09-22 11:06:07 UTC
Alright, SGTM; thanks!

Comment 27 errata-xmlrpc 2023-11-07 08:36:03 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (xdp-tools bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:6516