OpenVisualCloud / Media-Transport-Library

A real-time media transport(DPDK, AF_XDP, RDMA) stack for both raw and compressed video based on COTS hardware.
BSD 3-Clause "New" or "Revised" License
155 stars 47 forks source link

No IGMP messages using dpdk_af_packet #895

Closed eugenevt closed 1 week ago

eugenevt commented 1 month ago

On maint-24.06 branch (dpdk 23.11) there is no IGMP join/leave messages if I use dpdk_af_packet. Previous version (maint-23.12, dpdk 23.07) sends IGMP join/leave messages just fine.

frankdjx commented 1 month ago

Any special reason you required the dpdk_af_packet support? This data path is not well maintained since it's just for experimental usage.

grukx commented 1 month ago

I have been testing the example apps and IGMP reports do not seem to be sent from these either. I am new to this library so it may be a user/config error, but I can make the sample apps work for a short while if I do the join through ffmpeg first. (Same maint-24.06 branch, will try on main)

frankdjx commented 1 month ago

I have been testing the example apps and IGMP reports do not seem to be sent from these either. I am new to this library so it may be a user/config error, but I can make the sample apps work for a short while if I do the join through ffmpeg first. (Same maint-24.06 branch, will try on main)

We only has multicast issue for experimental af_pkt data path, all other path are working well.

eugenevt commented 1 month ago

I am trying different data paths as DPDK is not very scalable, and MTL has IGMPv3 implementation. Unfortunately IGMPv3 drives my switch (Netgear M4500-32C) completely crazy, it starts to send that group to all ports. With AF_PACKET and AF_XDP I can limit IGMP version in the network settings, but AF_XDP for the moment do not looks very stable, I have occasional packet drops even on 1080i25 streams...

frankdjx commented 1 month ago

Which ICE driver do you use?

Do you see below similar logging for XDP?

MTL: 2024-06-07 15:37:28, Warn: xdp_socket_init(0,1), xsk create with zero copy fail -95(Unknown error -95), try copy mode

The performance for copy mode is bad.

The ice driver from https://www.intel.com/content/www/us/en/download/19630/intel-network-adapter-driver-for-e810-series-devices-under-linux.html has some configuration issue to enable zero copy. I could suggest to use default built-in kernel driver if you only required XDP function.

eugenevt commented 1 month ago

I still have issues with my E810 card, for the moment I am using X710 and Mellanox ConnectX-6 cards.

eugenevt commented 1 month ago

I still have no data using AF_XDP from E810, X710 and ConnectX-6 works. Use stock kernel driver. Other strange symptoms: no SRIOV, cannot upgrade firmware (Device not found), cannot use port configuration tool.

61:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-C for QSFP [8086:1592] (rev 02)
61:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-C for QSFP [8086:1592] (rev 02)
frankdjx commented 4 weeks ago

Most E810 cards has two ports, can you try the loop back test, simply run:

./build/app/RxTxApp --config_file tests/script/native_af_xdp_json/loop.json
./build/app/RxTxApp --config_file tests/script/native_af_xdp_json/mcast.json

The first is a unicast test, while second is multicast.

The only thing it need change is the interface define in the json:

    "interfaces": [
        {
            "name": "native_af_xdp:enp175s0f0np0",
        },
        {
            "name": "native_af_xdp:enp175s0f1np1",
        }
    ],
eugenevt commented 3 weeks ago

For E810 I had opened another issue #902.

frankdjx commented 3 weeks ago

ok, then this one is fixed already in https://github.com/OpenVisualCloud/Media-Transport-Library/pull/897

frankdjx commented 1 week ago

Close since it fixed already. Create a new one if any other issues.