* [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).