All of lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [Bug 891] bnxt PMD: multicast filtering fails
Date: Fri, 26 Nov 2021 12:52:52 +0000	[thread overview]
Message-ID: <bug-891-3@http.bugs.dpdk.org/> (raw)

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.zitouni@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.

                 reply	other threads:[~2021-11-26 12:52 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-891-3@http.bugs.dpdk.org/ \
    --to=bugzilla@dpdk.org \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.