[dpdk-dev] vmware vmxnet3-usermap AND DPDK VMXNET3 PMD

Patel, Rashmin N rashmin.n.patel at intel.com
Fri Nov 7 17:53:05 CET 2014

Hi Aziz,

Yes, you're right DPDK VMXNET3-PMD in /lib/librte_pmd_vmxnet3 does not support mbuf chaining today. But it's a standalone bsd driver just like any other pmd in that directory, it does not need vmxnet3-usermap.ko module.

Now there is another vmxnet3 solution in a separate branch as a plugin, which must have vmxnet3-usermap.ko linux module(1), and a user space interface piece(2) to tie it to any DPDK application in the main branch. (1) and (2) makes the solution which is known as vmxnet3-plugin. It's been there for a long time just like virtio-plugin, I don't know who uses it, but community can *reply* here if there is still any need of a separate solution that way.

I'm in favor of consolidating all those version into one elegant solution by grabbing best features from all of them and maintain one copy. I'm sure that developers contributing from VMware would also support that idea because then it makes easy to maintain and debug and bug fix and most importantly avoid such confusion in future.


-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Aziz Hajee
Sent: Thursday, November 06, 2014 5:47 PM
To: dev at dpdk.org
Subject: [dpdk-dev] vmware vmxnet3-usermap AND DPDK VMXNET3 PMD

I am using the dpdk1.6.0r1
I could not find a complete clarification, sorry if missed.
I have enabled the VMXNET3 PMD  in the dpdk.
 # Compile burst-oriented VMXNET3 PMD driver  #

The Intel DPDK VMXNET3 PMD driver does not support mbuf chaining, and I have to set NOMULTSEGS for the vmxnet3 interface init to succeed.
tx_conf.txq_flags =  ETH_TXQ_FLAGS_NOMULTSEGS Is there a later version of DPDK that supports multiseg for the dpdk

vmware vmxnet3-usermap AND  DPDK VMXNET3 PMD =========================================
Is the vmxnet3-usermap.ko module driver also needed ? (appears that I need, otherwise the eal initialise fails.
sudo insmod ./vmxnet3-usermap.ko enable_shm=2,2 num_rqs=1,1 num_rxds=2048

I do not understand if VMXNET3 PMD is there, what is the purpose of /vmxnet3-usermap.ko/vmxnet3-usermap.ko ?

From some responses i saw that the following ifdef RTE_EAL_UNBIND_PORTS is also need to be removed in lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c ?
         .name = "rte_vmxnet3_pmd",
         .id_table = pci_id_vmxnet3_map, -#ifdef RTE_EAL_UNBIND_PORTS
         .drv_flags = RTE_PCI_DRV_NEED_IGB_UIO, -#endif
+// #endif
     .eth_dev_init = eth_vmxnet3_dev_init,
     .dev_private_size = sizeof(struct vmxnet3_adapter),


More information about the dev mailing list