Skip to content

AF_XDP raw forwarding max performance using veth #128

@muryliang

Description

@muryliang

cpu: i7-10700, memory 16GB

I create a network topology with three network namespace ns1(iface e12), ns2(iface e21, e23), ns3(iface e32). e12 <=> e21, e23 <=> e32. And I want to test the raw forward performance of afxdp program, without modifying any ethernet packet content and header, just forward.

so I modified the AF_XDP-forwarding program to load xdp kernel objs to just send packet to userspace both on e21 and e23, then I use "ip netns exec ns1 ethtool -k e12 tx off", "ip netns exec ns3 ethtool -k e32 tx off" to avoid checksum problem of tcp, also remove the MAX_BURST_TX if statement code , otherwise tcp handshake will not complete. After all these configuration, I use iperf3 at e12 as server, at e32 as client to test tcp performance from e32 to e12, through ns2.

the performance number is 3.5Gbps for a single queue, compared with kernel xdp redirect, which is 12Gbps, is quite slow. I want to know is there something not properly configured, or is this the max afxdp performance, or the max performance veth can reach, so if I can find some 10Gbps NIC support afxdp, will be faster?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions