* [dpdk-dev] Kni interface unable to receive ipv6 solicited node multicast addressed frames @ 2020-01-17 17:26 Srinivasan J 2020-01-23 15:36 ` Srinivasan J 0 siblings, 1 reply; 3+ messages in thread From: Srinivasan J @ 2020-01-17 17:26 UTC (permalink / raw) To: dev Hi, I observed that DPDK kni interface is not able to receive solicited node multicast addressed (derived from the IPv6 address configured on vEth0 interface) when the kni sample app is being run in Ubuntu VM on ESXI server. The only way to have the frames reach the kni interface is by setting the promiscuous mode in dvSwitch. However regular kernel interface with IPv6 address on the same vmxnet3 port works fine without having to set promiscuous mode in the dvSwitch. Has anyone seen this issue before? Any suggestions to have kni interface working with ipv6 addresses in non promiscuous mode of dvSwitch. Ubuntu version used = Ubuntu 18.04.3 LTS DPDK version: 18.08.1 VMware ESXI 6.5.0 auto@auto_ubuntu18:~/source/dpdk-stable-18.08.1/usertools$ uname -a Linux auto_ubuntu18 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux sudo /tmp/kni -l 6-7 -- -P -p 0x1 --config="(0,6,7)" Thanks, Srini ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dpdk-dev] Kni interface unable to receive ipv6 solicited node multicast addressed frames 2020-01-17 17:26 [dpdk-dev] Kni interface unable to receive ipv6 solicited node multicast addressed frames Srinivasan J @ 2020-01-23 15:36 ` Srinivasan J 2020-01-25 2:09 ` Srinivasan J 0 siblings, 1 reply; 3+ messages in thread From: Srinivasan J @ 2020-01-23 15:36 UTC (permalink / raw) To: dev On further investigation, it' seen that the dvSwitch does not have any multicast MAC registered when using DPDK vmxnet3 poll mode driver along with the KNI sample app post configuring IPv6 address on the vEth0 KNI interface. The same interface when used with the kernel driver works fine. Any help or pointers are really appreciated. Regards, Srini Non Working case: Using DPDK sample KNI interface in the same Ubuntu ================ /net/portsets/DvsPortset-0/ports/50331667/> cat status port { port index:19 portCfg: dvPortId:17 clientName:Ubuntu 18 64bit.eth1 clientType:port types: 5 -> VMM Virtual NIC clientSubType:port types: 9 -> Vmxnet3 Client world leader:180572 flags:port flags: 0x401d3 -> IN_USE ENABLED WORLD_ASSOC RX_COALESCE TX_COALESCE TX_COMP_COALESCE CONNECTED Impl customized blocked flags:0x00000000 Passthru status:: 0x20 -> DISABLED_BY_PG fixed Hw Id:00:50:56:80:b3:6e: ethFRP:frame routing { requested:filter { flags:0x00000019 unicastAddr:00:50:56:80:b3:6e: numMulticastAddresses:0 multicastAddresses: LADRF:[0]: 0x0 [1]: 0x0 } accepted:filter { flags:0x00000009 unicastAddr:00:50:56:80:b3:6e: numMulticastAddresses:0 multicastAddresses: LADRF:[0]: 0x0 [1]: 0x0 } } filter supported features:features: 0 -> NONE filter properties:properties: 0 -> NONE rx mode:properties: 0 -> INLINE tune mode:Tuning mode: 0 -> default } Working case: Using Kernel interface in Ubuntu =========== /net/portsets/DvsPortset-0/ports/50331667/> cat status port { port index:19 portCfg: dvPortId:17 clientName:Ubuntu 18 64bit.eth1 clientType:port types: 5 -> VMM Virtual NIC clientSubType:port types: 9 -> Vmxnet3 Client world leader:180572 flags:port flags: 0x401d3 -> IN_USE ENABLED WORLD_ASSOC RX_COALESCE TX_COALESCE TX_COMP_COALESCE CONNECTED Impl customized blocked flags:0x00000000 Passthru status:: 0x20 -> DISABLED_BY_PG fixed Hw Id:00:50:56:80:b3:6e: ethFRP:frame routing { requested:filter { flags:0x0000000b unicastAddr:00:50:56:80:b3:6e: numMulticastAddresses:6 multicastAddresses:01:00:5e:00:00:01,01:80:c2:00:00:00,01:80:c2:00:00:03,01:80:c2:00:00:0e,33:33:00:00:00:01,33:33:ff:80:b3:6e, LADRF:[0]: 0x0 [1]: 0x0 } accepted:filter { flags:0x0000000b unicastAddr:00:50:56:80:b3:6e: numMulticastAddresses:6 multicastAddresses:01:00:5e:00:00:01,01:80:c2:00:00:00,01:80:c2:00:00:03,01:80:c2:00:00:0e,33:33:00:00:00:01,33:33:ff:80:b3:6e, LADRF:[0]: 0x0 [1]: 0x0 } } filter supported features:features: 0x1 -> LRO filter properties:properties: 0 -> NONE rx mode:properties: 0 -> INLINE tune mode:Tuning mode: 0 -> default } On Fri, Jan 17, 2020 at 10:56 PM Srinivasan J <srinidpdk@gmail.com> wrote: > > Hi, > I observed that DPDK kni interface is not able to receive solicited > node multicast addressed (derived from the IPv6 address configured on > vEth0 interface) when the kni sample app is being run in Ubuntu VM on > ESXI server. The only way to have the frames reach the kni interface > is by setting the promiscuous mode in dvSwitch. However regular kernel > interface with IPv6 address on the same vmxnet3 port works fine > without having to set promiscuous mode in the dvSwitch. Has anyone > seen this issue before? Any suggestions to have kni interface working > with ipv6 addresses in non promiscuous mode of dvSwitch. > > Ubuntu version used = Ubuntu 18.04.3 LTS > DPDK version: 18.08.1 > VMware ESXI 6.5.0 > > auto@auto_ubuntu18:~/source/dpdk-stable-18.08.1/usertools$ uname -a > Linux auto_ubuntu18 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 > 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux > > sudo /tmp/kni -l 6-7 -- -P -p 0x1 --config="(0,6,7)" > > Thanks, > Srini ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dpdk-dev] Kni interface unable to receive ipv6 solicited node multicast addressed frames 2020-01-23 15:36 ` Srinivasan J @ 2020-01-25 2:09 ` Srinivasan J 0 siblings, 0 replies; 3+ messages in thread From: Srinivasan J @ 2020-01-25 2:09 UTC (permalink / raw) To: dev Calling rte_eth_allmulticast_enable() in the DPDK KNI sample app solved the issue. Sharing the fix so that it will be helpful for others facing similar issue. Regards, Srini /dpdk-stable-18.08.1/examples/kni/main.c @@ -618,8 +619,10 @@ rte_exit(EXIT_FAILURE, "Could not start port%u (%d)\n", (unsigned)port, ret); - if (promiscuous_on) + if (promiscuous_on) { + rte_eth_allmulticast_enable(port); rte_eth_promiscuous_enable(port); + } Corresponding flags/settings in the dVswitch post calling rte_eth_allmulticast_enable() in KNI app. /net/portsets/DvsPortset-0/ports/50331671/> cat status port { port index:23 portCfg: dvPortId:17 clientName:Ubuntu 18 64bit.eth1 clientType:port types: 5 -> VMM Virtual NIC clientSubType:port types: 9 -> Vmxnet3 Client world leader:180572 flags:port flags: 0xc01d3 -> IN_USE ENABLED WORLD_ASSOC RX_COALESCE TX_COALESCE TX_COMP_COALESCE CONNECTED MULTICAST_ROUTER Impl customized blocked flags:0x00000000 Passthru status:: 0x20 -> DISABLED_BY_PG fixed Hw Id:00:50:56:80:b3:6e: ethFRP:frame routing { requested:filter { flags:0x0000000d unicastAddr:00:50:56:80:b3:6e: numMulticastAddresses:0 multicastAddresses: LADRF:[0]: 0x0 [1]: 0x0 } accepted:filter { flags:0x0000000d unicastAddr:00:50:56:80:b3:6e: numMulticastAddresses:0 multicastAddresses: LADRF:[0]: 0x0 [1]: 0x0 } } filter supported features:features: 0 -> NONE filter properties:properties: 0 -> NONE rx mode:properties: 0 -> INLINE tune mode:Tuning mode: 0 -> default } On Thu, Jan 23, 2020 at 9:06 PM Srinivasan J <srinidpdk@gmail.com> wrote: > > On further investigation, it' seen that the dvSwitch does not have any > multicast MAC registered when using DPDK vmxnet3 poll mode driver > along with the KNI sample app post configuring IPv6 address on the > vEth0 KNI interface. The same interface when used with the kernel > driver works fine. Any help or pointers are really appreciated. > > Regards, > Srini > > Non Working case: Using DPDK sample KNI interface in the same Ubuntu > ================ > /net/portsets/DvsPortset-0/ports/50331667/> cat status > port { > port index:19 > portCfg: > dvPortId:17 > clientName:Ubuntu 18 64bit.eth1 > clientType:port types: 5 -> VMM Virtual NIC > clientSubType:port types: 9 -> Vmxnet3 Client > world leader:180572 > flags:port flags: 0x401d3 -> IN_USE ENABLED WORLD_ASSOC RX_COALESCE > TX_COALESCE TX_COMP_COALESCE CONNECTED > Impl customized blocked flags:0x00000000 > Passthru status:: 0x20 -> DISABLED_BY_PG > fixed Hw Id:00:50:56:80:b3:6e: > ethFRP:frame routing { > requested:filter { > flags:0x00000019 > unicastAddr:00:50:56:80:b3:6e: > numMulticastAddresses:0 > multicastAddresses: > LADRF:[0]: 0x0 > [1]: 0x0 > } > accepted:filter { > flags:0x00000009 > unicastAddr:00:50:56:80:b3:6e: > numMulticastAddresses:0 > multicastAddresses: > LADRF:[0]: 0x0 > [1]: 0x0 > } > } > filter supported features:features: 0 -> NONE > filter properties:properties: 0 -> NONE > rx mode:properties: 0 -> INLINE > tune mode:Tuning mode: 0 -> default > } > > Working case: Using Kernel interface in Ubuntu > =========== > /net/portsets/DvsPortset-0/ports/50331667/> cat status > port { > port index:19 > portCfg: > dvPortId:17 > clientName:Ubuntu 18 64bit.eth1 > clientType:port types: 5 -> VMM Virtual NIC > clientSubType:port types: 9 -> Vmxnet3 Client > world leader:180572 > flags:port flags: 0x401d3 -> IN_USE ENABLED WORLD_ASSOC RX_COALESCE > TX_COALESCE TX_COMP_COALESCE CONNECTED > Impl customized blocked flags:0x00000000 > Passthru status:: 0x20 -> DISABLED_BY_PG > fixed Hw Id:00:50:56:80:b3:6e: > ethFRP:frame routing { > requested:filter { > flags:0x0000000b > unicastAddr:00:50:56:80:b3:6e: > numMulticastAddresses:6 > multicastAddresses:01:00:5e:00:00:01,01:80:c2:00:00:00,01:80:c2:00:00:03,01:80:c2:00:00:0e,33:33:00:00:00:01,33:33:ff:80:b3:6e, > LADRF:[0]: 0x0 > [1]: 0x0 > } > accepted:filter { > flags:0x0000000b > unicastAddr:00:50:56:80:b3:6e: > numMulticastAddresses:6 > multicastAddresses:01:00:5e:00:00:01,01:80:c2:00:00:00,01:80:c2:00:00:03,01:80:c2:00:00:0e,33:33:00:00:00:01,33:33:ff:80:b3:6e, > LADRF:[0]: 0x0 > [1]: 0x0 > } > } > filter supported features:features: 0x1 -> LRO > filter properties:properties: 0 -> NONE > rx mode:properties: 0 -> INLINE > tune mode:Tuning mode: 0 -> default > } > > On Fri, Jan 17, 2020 at 10:56 PM Srinivasan J <srinidpdk@gmail.com> wrote: > > > > Hi, > > I observed that DPDK kni interface is not able to receive solicited > > node multicast addressed (derived from the IPv6 address configured on > > vEth0 interface) when the kni sample app is being run in Ubuntu VM on > > ESXI server. The only way to have the frames reach the kni interface > > is by setting the promiscuous mode in dvSwitch. However regular kernel > > interface with IPv6 address on the same vmxnet3 port works fine > > without having to set promiscuous mode in the dvSwitch. Has anyone > > seen this issue before? Any suggestions to have kni interface working > > with ipv6 addresses in non promiscuous mode of dvSwitch. > > > > Ubuntu version used = Ubuntu 18.04.3 LTS > > DPDK version: 18.08.1 > > VMware ESXI 6.5.0 > > > > auto@auto_ubuntu18:~/source/dpdk-stable-18.08.1/usertools$ uname -a > > Linux auto_ubuntu18 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 > > 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux > > > > sudo /tmp/kni -l 6-7 -- -P -p 0x1 --config="(0,6,7)" > > > > Thanks, > > Srini ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-01-25 2:09 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-01-17 17:26 [dpdk-dev] Kni interface unable to receive ipv6 solicited node multicast addressed frames Srinivasan J 2020-01-23 15:36 ` Srinivasan J 2020-01-25 2:09 ` Srinivasan J
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).