DPDK patches and discussions
 help / color / mirror / Atom feed
* [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).