https://bugs.dpdk.org/show_bug.cgi?id=891
Bug ID: 891 Summary: bnxt PMD: multicast filtering fails Product: DPDK Version: 20.11 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: Normal Component: ethdev Assignee: dev@dpdk.org Reporter: siwar.zito...@6wind.com Target Milestone: --- On Broadcom bnxt PF, multicast packets reception is successful only if the multicast mac address of the packets is the first one in the multicast address list of the port. test: using Testpmd and DPDK version: 20.11.3 *** Test configuration *** 1/ Bind the device to the kernel modules vfio-pci ./dpdk-devbind.py -b vfio-pci 0000:08:00.1 ./dpdk-devbind.py -b vfio-pci 0000:08:00.0 2/Launch the app testpmd with the following arguments: ./dpdk-testpmd --log-level=pmd.net.bnxt.driver:8 -l 1,2 -a 0000:08:00.0 -a 0000:08:00.1 -- -i --rxq=1 --txq=1 --coremask=0x04 --total-num-mbufs=250000 testpmd> set fwd rxonly testpmd> set verbose 1 testpmd> start testpmd> set promisc all off testpmd> set allmulti all off *** Test steps *** 1/ step 1: ** check multicast address list of the ports testpmd> show port 1 mcast_macs Number of Multicast MAC address added: 0 testpmd> show port 0 mcast_macs Number of Multicast MAC address added: 0 ** Configure multicast address: testpmd> mcast_addr add 1 33:33:00:10:00:01 testpmd> show port 1 mcast_macs Number of Multicast MAC address added: 1 33:33:00:10:00:01 ** From a second machine: send the following packet using scapy: scapy file: p = Ether(dst='33:33:00:10:00:01', src='ec:0d:9a:37:d1:7b')/IPv6(nh=59, src='fd00:200::2', dst='ff05::10:10:2')/Raw(load=b'kqi1Br') sendp(p, iface='ntfp2', count=5, inter=0.5) ** Result: testpmd> port 1/queue 0: received 1 packets src=EC:0D:9A:37:D1:7B - dst=33:33:00:10:00:01 - type=0x86dd - lengt h=60 - nb_segs=1 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN - sw ptype : L2_ETHER L3_IPV6 - l2_len=14 - l3_len=40 - Receive queue=0x0 ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER _L4_CKSUM_UNKNOWN port 1/queue 0: received 1 packets src=EC:0D:9A:37:D1:7B - dst=33:33:00:10:00:01 - type=0x86dd - lengt h=60 - nb_segs=1 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN - sw ptype : L2_ETHER L3_IPV6 - l2_len=14 - l3_len=40 - Receive queue=0x0 ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER _L4_CKSUM_UNKNOWN ==> All packets are received on the main machine: Test is successful PS: ec:0d:9a:37:d1:7 : mac address of the second machine port ntfp2 2/ step 2 : Add more multicast addresses to port 1 (maintain 33:33:00:10:00:01 in the first position of the list) and send the same packets again: testpmd> show port 1 mcast_macs Number of Multicast MAC address added: 5 33:33:00:10:00:01 33:33:00:10:00:02 33:33:00:10:00:03 33:33:00:10:00:04 33:33:00:10:00:05 ** Result: testpmd> port 1/queue 0: received 1 packets src=EC:0D:9A:37:D1:7B - dst=33:33:00:10:00:01 - type=0x86dd - lengt h=60 - nb_segs=1 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN - sw ptype : L2_ETHER L3_IPV6 - l2_len=14 - l3_len=40 - Receive queue=0x0 ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER _L4_CKSUM_UNKNOWN ==> All packets are received on the main machine: Test is successful 3/ step 3: Change the order of multicast addresses & resend the same packets testpmd> mcast_addr remove 1 33:33:00:10:00:01 testpmd> show port 1 mcast_macs Number of Multicast MAC address added: 4 33:33:00:10:00:02 33:33:00:10:00:03 33:33:00:10:00:04 33:33:00:10:00:05 testpmd> mcast_addr add 1 33:33:00:10:00:01 testpmd> show port 1 mcast_macs Number of Multicast MAC address added: 5 33:33:00:10:00:02 33:33:00:10:00:03 33:33:00:10:00:04 33:33:00:10:00:05 33:33:00:10:00:01 ** Result: testpmd> ==> No packet is received: Test fails. FYI: The same test was applied using dpdk version 21.11 git link: https://github.com/DPDK/dpdk branch: main commit: 779279afa579570f4e62b708895fa52de1bee471 latest tag : v21.11-rc4 => the test shows the same results -- You are receiving this mail because: You are the assignee for the bug.