This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: IGMP Router Alert

Part Number: AM5728

Hello,

Can you help me to setup IGMP router alert in am57xx.

I have tried using ip eth0 mutlicast but I am receiving only UDP packets and not IGMP packets as expected.

We have a set of 5 systems connected running on am57xx and we want to send only certain packets meant for a specific system based on their IP address.

Regards,

Swaroop Muralidharan

  • HI Swaroop,

    Have you added any multicast route in your system?

    Can you share the output of ifconfig?

    Regards,
    Tanmay

  • Hello Tanmay,

    Yes, mutlicast is enabled for our system.

    Output of our ifconfig file:

             
      

  • Hi Swaroop,

    Can you share the commands you are running on the device and host for me to replicate the setup.

    Regards,
    Tanmay

  • Hello Tanmay,

    Multicast has been enabled on our router, and we've connected five systems that are running on the AM5728 platform. When I attempted to send packets using the IGMP protocol from a Windows 10 laptop to our systems, there was no response.

    However, when I used the same method to send packets to a system running Ubuntu 20.04, it was able to receive the packets and responded with a router alert.

    Upon checking the system's configuration, I found that the `CONFIG_IP_MULTICAST` option is set to 'y' in the kernel, indicating that multicast support is enabled. Additionally, I observed the presence of the `/proc/net/igmp` file in our kernel build.

    In summary, multicast is enabled on our router, and our Linux systems appear to have the necessary multicast configuration in the kernel to support IGMP. Is there anything else I might be missing?

    Regards,

    Swaroop

  • Hi Swaroop,

    Can you check the following:

    • See if you are able to see the packets being sent out from eth0 interface using "tcpdump -i etho" command.
    • See in the statistics of the ethernet controller if you are seeing multicast packages being sent. Command for this is : "ethtool -S eth0"

    Regards,
    Tanmay

  • Hello Tanmay,

    This is output of 'tcpdump -i eth0' command:

    root@am57xx-evm:~# tcpdump -i eth0
    [  577.030845] device eth0 entered promiscuous mode
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    17:36:02.781706 IP6 futura-HP-Pavilion-Laptop-14-bf1xx.local.mdns > ff02::fb.mdns: 0 [1a] [10q] PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. PTR (QM)? _ipps._tcp.local. PTR (QM)? _pgpkey-hkp._t)
    17:36:02.781779 IP futura-HP-Pavilion-Laptop-14-bf1xx.local.mdns > 224.0.0.251.mdns: 0 [1a] [10q] PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. PTR (QM)? _ipps._tcp.local. PTR (QM)? _pgpkey-hkp.)
    17:36:02.899776 IP6 am57xx-evm.local.mdns > ff02::fb.mdns: 0 PTR (QM)? f.4.a.d.4.5.4.c.7.0.f.9.d.6.b.8.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (90)
    17:36:02.899962 IP am57xx-evm.local.mdns > 224.0.0.251.mdns: 0 PTR (QM)? f.4.a.d.4.5.4.c.7.0.f.9.d.6.b.8.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (90)
    17:36:02.901227 IP6 futura-HP-Pavilion-Laptop-14-bf1xx.local.mdns > ff02::fb.mdns: 0*- [0q] 1/0/0 (Cache flush) PTR futura-HP-Pavilion-Laptop-14-bf1xx.local. (138)
    17:36:02.901258 IP futura-HP-Pavilion-Laptop-14-bf1xx.local.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/0 (Cache flush) PTR futura-HP-Pavilion-Laptop-14-bf1xx.local. (138)
    17:36:03.002465 IP6 am57xx-evm.local.mdns > ff02::fb.mdns: 0 PTR (QM)? b.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa. (90)
    17:36:08.005884 IP6 am57xx-evm.local.mdns > ff02::fb.mdns: 0 PTR (QM)? 100.1.168.192.in-addr.arpa. (44)
    17:36:13.110752 IP6 am57xx-evm.local.mdns > ff02::fb.mdns: 0 PTR (QM)? c.1.3.3.c.6.e.f.f.f.a.2.0.3.e.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (90)
    17:36:13.138296 IP6 am57xx-evm.local.mdns > ff02::fb.mdns: 0*- [0q] 1/0/0 (Cache flush) PTR am57xx-evm.local. (114)

    10 packets captured
    28 packets received by filter
    18 packets d[  626.066330] device eth0 left promiscuous mode
    ropped by kernel

    And ' ethtool -S eth0' :

    root@am57xx-evm:~# ethtool -S eth0
    NIC statistics:
         Good Rx Frames: 2782
         Broadcast Rx Frames: 55
         Multicast Rx Frames: 69
         Pause Rx Frames: 0
         Rx CRC Errors: 0
         Rx Align/Code Errors: 0
         Oversize Rx Frames: 0
         Rx Jabbers: 0
         Undersize (Short) Rx Frames: 0
         Rx Fragments: 0
         Rx Octets: 229371
         Good Tx Frames: 4866
         Broadcast Tx Frames: 6
         Multicast Tx Frames: 204
         Pause Tx Frames: 0
         Deferred Tx Frames: 0
         Collisions: 0
         Single Collision Tx Frames: 0
         Multiple Collision Tx Frames: 0
         Excessive Collisions: 0
         Late Collisions: 0
         Tx Underrun: 0
         Carrier Sense Errors: 0
         Tx Octets: 4115265
         Rx + Tx 64 Octet Frames: 59
         Rx + Tx 65-127 Octet Frames: 2972
         Rx + Tx 128-255 Octet Frames: 1209
         Rx + Tx 256-511 Octet Frames: 831
         Rx + Tx 512-1023 Octet Frames: 317
         Rx + Tx 1024-Up Octet Frames: 2260
         Net Octets: 4344636
         Rx Start of Frame Overruns: 0
         Rx Middle of Frame Overruns: 0
         Rx DMA Overruns: 0
         Rx DMA chan 0: head_enqueue: 1
         Rx DMA chan 0: tail_enqueue: 2885
         Rx DMA chan 0: pad_enqueue: 0
         Rx DMA chan 0: misqueued: 0
         Rx DMA chan 0: desc_alloc_fail: 0
         Rx DMA chan 0: pad_alloc_fail: 0
         Rx DMA chan 0: runt_receive_buf: 0
         Rx DMA chan 0: runt_transmit_bu: 0
         Rx DMA chan 0: empty_dequeue: 0
         Rx DMA chan 0: busy_dequeue: 2730
         Rx DMA chan 0: good_dequeue: 2758
         Rx DMA chan 0: requeue: 0
         Rx DMA chan 0: teardown_dequeue: 0
         Tx DMA chan 0: head_enqueue: 4863
         Tx DMA chan 0: tail_enqueue: 3
         Tx DMA chan 0: pad_enqueue: 0
         Tx DMA chan 0: misqueued: 3
         Tx DMA chan 0: desc_alloc_fail: 0
         Tx DMA chan 0: pad_alloc_fail: 0
         Tx DMA chan 0: runt_receive_buf: 0
         Tx DMA chan 0: runt_transmit_bu: 13
         Tx DMA chan 0: empty_dequeue: 4863
         Tx DMA chan 0: busy_dequeue: 2
         Tx DMA chan 0: good_dequeue: 4866
         Tx DMA chan 0: requeue: 0
         Tx DMA chan 0: teardown_dequeue: 0

    Regards,

    Swaroop

  • Hi Swaroop,

    I am not sure how the igmp packets are supposed to look like. Can you confirm that the packets are seen in the output of 'tcpdump -i eth0' command.

    When the multicast packets are being sent, do you see increase in "Multicast Tx Frames" of the stats? If this is yes, then that means that the packets are being transmitted from the SoC.

    Regards,
    Tanmay