Menu

Couple of issues under Ubuntu 24.04

2024-07-26
2024-08-10
  • Gary Blythe

    Gary Blythe - 2024-07-26

    I'm working a transition of a set of test tools from Ubuntu 22.04 to 24.04 and from DotNet 6 to DotNet 8.

    I cloned master today and ran into a small issue in make:

    In dscp.c, there are a couple of definitions that weren't happy:

    Your conditional definition using IPTOS_DSCP_LE (line 98) errors downstream, because IPTOS_DSCP_NQB and NQB2 don't get assigned. My solution for test was to put both in their own #ifndef block to make the compiler happy...

    Running a simple test between a Ubuntu 24.04 node (server) and a 22.04 node (client), using the following commands results in a core dump on the server side. The network fabric is 10 Gbps end-to-end.

    Server: iperf -i 1 -s -p 5200 --tos-override 36 -e -l 64K
    Client: iperf -S 36 -t 30 -i 1 -p 5200 -c 192.168.1.68 -e -l 64K

    Server side output:


    Server listening on TCP port 5200 with pid 13307
    Read buffer size: 64.0 KByte (Dist bin width=8.00 KByte)
    TCP congestion control default cubic
    Reflected TOS will be set to 0x24 (dscp=9,ecn=0)
    TCP window size: 128 KByte (default)


    *** buffer overflow detected ***: terminated
    Aborted (core dumped)

    Running without the -e switch eliminated the core dump

    When reversed (i.e., 24.04 as client), the -e switch also generated a core dump


    Client connecting to 192.168.0.54, TCP port 5200 with pid 13383 (1/0 flows/load)
    Write buffer size: 65536 Byte
    TCP congestion control using cubic
    TOS set to 0x24 (dscp=9,ecn=0) (Nagle on)
    TCP window size: 16.0 KByte (default)


    *** buffer overflow detected ***: terminated
    Aborted (core dumped)

    Finally, performance is very low. I'm assuming that there has been some changes in buffer sizing behavior (i.e., receive/transmit buffer and RWIN between the 22.04 and 24.04 versions. I'll look into that issue in a follow-up. The commands above, under 22.04, have let RWIN expand to the default Ubuntu value of ~3.2 MB...

     
  • Robert McMahon

    Robert McMahon - 2024-07-27

    Ok, I think I found the buffer overflow. It's in the CCA parts. Hopefully fixed now.

     
  • Gary Blythe

    Gary Blythe - 2024-07-31

    I'll take a look later today...

    As to the low performance, I'll collect some data. My VMs are normally able to saturate bidirectionally.

    When I performed initial integration of my test tools a year or so ago, there were funny interactions between (some of) the iPerf switches and Ubuntu's TCP stack/kernel parameters (22.04). For example, if I asked for a large RWIN (to approximate existing Riverbed Steelhead configurations), Ubuntu would refuse and set ridiculously small values. I'm going to have to do the same eval with 24.04. I'll keep you posted.

     
  • Gary Blythe

    Gary Blythe - 2024-08-10

    Sorry for the late response, but that got it.

     

Log in to post a comment.