<div dir="ltr">Thank you for the clarification, however, I have not created any tap device by manual process and trying to create one by DPDK,let me know if I am missing anything in the parameter list.<div><br></div><div>/dpdk-l3fwd  --log-level *:debug -c f -n 4 --vdev=net_tap0 -- -p 0x3 --config="(0,0,0),(0,1,1),(1,0,2)"<br><br><b>Here is the outcome for  dpdk-devbind.py -s on my machine is there any other way to see the Tap devices created from DPDK.</b><br><br>Network devices using kernel driver<br>===================================<br>0000:00:03.0 'Virtio network device 1000' if=ens3 drv=virtio-pci unused=vfio-pci,uio_pci_generic *Active*<br><br>Other Network devices<br>=====================<br>0000:00:05.0 'Ethernet Virtual Function 700 Series 154c' unused=iavf,vfio-pci,uio_pci_generic<br>0000:00:06.0 'Ethernet Virtual Function 700 Series 154c' unused=iavf,vfio-pci,uio_pci_generic<br><br>No 'Baseband' devices detected<br>==============================<br><br>No 'Crypto' devices detected<br>============================<br><br>No 'DMA' devices detected<br>=========================<br><br>No 'Eventdev' devices detected<br>==============================<br><br>No 'Mempool' devices detected<br>=============================<br><br>No 'Compress' devices detected<br>==============================<br><br>Misc (rawdev) devices using kernel driver<br>=========================================<br>0000:00:04.0 'Virtio block device 1001' drv=virtio-pci unused=vfio-pci,uio_pci_generic<br><br>No 'Regex' devices detected<br>===========================<br><br><div>On the details log it is failing at<br><br>.<b>/dpdk-l3fwd  --log-level *:debug -c f -n 4 --vdev=net_tap0 -- -p 0x3 --config="(0,0,0),(0,1,1),(1,0,2)"</b></div><div><br></div><div><br> EAL: pmd.bb.turbo_sw log level changed from notice to debug</div>EAL: Detected lcore 0 as core 0 on socket 0<br>EAL: Detected lcore 1 as core 0 on socket 0<br>EAL: Detected lcore 2 as core 0 on socket 0<br>EAL: Detected lcore 3 as core 0 on socket 0<br>EAL: Detected lcore 4 as core 0 on socket 0<br>EAL: Detected lcore 5 as core 0 on socket 0<br>EAL: Detected lcore 6 as core 0 on socket 0<br>EAL: Detected lcore 7 as core 0 on socket 0<br>EAL: Maximum logical cores by configuration: 128<br>EAL: Detected CPU lcores: 8<br>EAL: Detected NUMA nodes: 1<br>EAL: Checking presence of .so 'librte_eal.so.22.0'<br>EAL: Checking presence of .so 'librte_eal.so.22'<br>EAL: Checking presence of .so 'librte_eal.so'<br>EAL: Detected static linkage of DPDK<br>dpaa: rte_dpaa_bus_parse(): Parse device name (net_tap0)<br>fslmc: rte_fslmc_parse(): Parsing dev=(net_tap0)<br><b><font color="#ff0000">fslmc: rte_fslmc_parse(): Unknown or unsupported device (net_tap0)</font></b><br>EAL: Ask a virtual area of 0x7000 bytes<br>EAL: Virtual area found at 0x100000000 (size = 0x7000)<br>EAL: Multi-process socket /var/run/dpdk/rte/mp_socket<br>auxiliary bus: /sys/bus/auxiliary/devices not found, is auxiliary module loaded?<br>dpaa: rte_dpaa_bus_scan():  >><br>EAL: DPAA Bus not present. Skipping.<br>fslmc: fslmc_get_container_group(): DPAA2: DPRC not available<br>fslmc: rte_fslmc_scan(): FSLMC Bus Not Available. Skipping (-22)<br>EAL: VFIO PCI modules not loaded<br>EAL: Bus auxiliary wants IOVA as 'DC'<br>EAL: Bus dpaa_bus wants IOVA as 'DC'<br>EAL: Bus fslmc wants IOVA as 'DC'<br>EAL: PCI driver net_iavf for device 0000:00:05.0 wants IOVA as 'PA'<br>EAL: Bus pci wants IOVA as 'PA'<br>EAL: Bus vdev wants IOVA as 'DC'<br>EAL: Bus dsa wants IOVA as 'DC'<br>EAL: Selected IOVA mode 'PA'<br>EAL: No available 1048576 kB hugepages reported<br>EAL: Probing VFIO support...<br>EAL: IOMMU type 1 (Type 1) is supported<br>EAL: IOMMU type 7 (sPAPR) is not supported<br>EAL: IOMMU type 8 (No-IOMMU) is not supported<br>EAL: VFIO support initialized<br>EAL: Ask a virtual area of 0x2e000 bytes<br>EAL: Virtual area found at 0x100007000 (size = 0x2e000)<br>EAL: Setting up physically contiguous memory...<br>EAL: Setting maximum number of open files to 1048576<br>EAL: Detected memory type: socket_id:0 hugepage_sz:2097152<br>EAL: Creating 4 segment lists: n_segs:8192 socket_id:0 hugepage_sz:2097152<br>EAL: Ask a virtual area of 0x61000 bytes<br>EAL: Virtual area found at 0x100035000 (size = 0x61000)<br>EAL: Memseg list allocated at socket 0, page size 0x800kB<br>EAL: Ask a virtual area of 0x400000000 bytes<br>EAL: Virtual area found at 0x100200000 (size = 0x400000000)<br>EAL: VA reserved for memseg list at 0x100200000, size 400000000<br>EAL: Ask a virtual area of 0x61000 bytes<br>EAL: Virtual area found at 0x500200000 (size = 0x61000)<br>EAL: Memseg list allocated at socket 0, page size 0x800kB<br>EAL: Ask a virtual area of 0x400000000 bytes<br>EAL: Virtual area found at 0x500400000 (size = 0x400000000)<br>EAL: VA reserved for memseg list at 0x500400000, size 400000000<br>EAL: Ask a virtual area of 0x61000 bytes<br>EAL: Virtual area found at 0x900400000 (size = 0x61000)<br>EAL: Memseg list allocated at socket 0, page size 0x800kB<br>EAL: Ask a virtual area of 0x400000000 bytes<br>EAL: Virtual area found at 0x900600000 (size = 0x400000000)<br>EAL: VA reserved for memseg list at 0x900600000, size 400000000<br>EAL: Ask a virtual area of 0x61000 bytes<br>EAL: Virtual area found at 0xd00600000 (size = 0x61000)<br>EAL: Memseg list allocated at socket 0, page size 0x800kB<br>EAL: Ask a virtual area of 0x400000000 bytes<br>EAL: Virtual area found at 0xd00800000 (size = 0x400000000)<br>EAL: VA reserved for memseg list at 0xd00800000, size 400000000<br>EAL: TSC frequency is ~2100000 KHz<br>EAL: Main lcore 0 is ready (tid=7f74eeab7c00;cpuset=[0])<br>EAL: lcore 1 is ready (tid=7f74edab2400;cpuset=[1])<br>EAL: lcore 2 is ready (tid=7f74ed2b1400;cpuset=[2])<br>EAL: lcore 3 is ready (tid=7f74ecab0400;cpuset=[3])<br>EAL: Trying to obtain current memory policy.<br>EAL: Setting policy MPOL_PREFERRED for socket 0<br>EAL: Restoring previous memory policy: 0<br>EAL: request: mp_malloc_sync<br>EAL: Heap on socket 0 was expanded by 2MB<br>EAL: PCI device 0000:00:03.0 on NUMA socket -1<br>EAL:   probe driver: 1af4:1000 net_virtio<br>EAL: Probe PCI driver: net_virtio (1af4:1000) device: 0000:00:03.0 (socket 0)<br>EAL:   Not managed by a supported kernel driver, skipped<br>virtio_read_caps(): failed to map pci device!<br>vtpci_init(): trying with legacy virtio pci.<br>EAL:   Not managed by a supported kernel driver, skipped<br>vtpci_init(): skip kernel managed virtio device.<br>eth_virtio_pci_init(): Failed to init PCI device<br>EAL: Requested device 0000:00:03.0 cannot be used<br>EAL: PCI device 0000:00:05.0 on NUMA socket -1<br>EAL:   probe driver: 8086:154c net_iavf<br>EAL:   PCI memory mapped at 0x1100800000<br>EAL:   PCI memory mapped at 0x1100810000<br>EAL: Probe PCI driver: net_iavf (8086:154c) device: 0000:00:05.0 (socket 0)<br>iavf_dev_init():  >><br>iavf_set_mac_type<br><br>iavf_set_mac_type found mac: 2, returns: 0<br>iavf_read_msg_from_pf(): Can't read msg from AQ<br>iavf_read_msg_from_pf(): AQ from pf carries opcode 1, retval 0<br>iavf_check_api_version(): Peer is supported PF host<br>iavf_read_msg_from_pf(): Can't read msg from AQ<br>iavf_read_msg_from_pf(): AQ from pf carries opcode 3, retval 0<br>iavf_dev_alarm_handler(): ICR01_ADMINQ is reported<br>iavf_handle_pf_event_msg(): VIRTCHNL_EVENT_LINK_CHANGE event<br>iavf_handle_virtchnl_msg(): adminq response is received, opcode = 26<br>vdev_probe_all_drivers(): Search driver to probe device net_tap0<br>rte_pmd_tap_probe(): Initializing pmd_tap for net_tap0<br>eth_dev_tap_create(): TAP device on numa 0<br>tun_alloc(): /dev/net/tun Features 00007133<br>tun_alloc():   Multi-queue support for 16 queues<br>tun_alloc(): Device name is 'dtap0'<br>tun_alloc(): Using rt-signal 35<br><b>eth_dev_tap_create(): allocated dtap0</b><br>EAL: lib.telemetry log level changed from disabled to debug<br>TELEMETRY: Attempting socket bind to path '/var/run/dpdk/rte/dpdk_telemetry.v2'<br>TELEMETRY: Socket creation and binding ok<br>TELEMETRY: Telemetry initialized ok<br>TELEMETRY: No legacy callbacks, legacy socket not created<br>Neither LPM, EM, or FIB selected, defaulting to LPM<br>Initializing port 0 ... Creating queues: nb_rxq=2 nb_txq=4... Port 0 modified RSS hash function based on hardware support,requested:0xa38c configured:0x238c<br>iavf_dev_init_vlan(): Failed to update vlan offload<br><b><font color="#ff0000">iavf_dev_configure(): configure VLAN failed: -95</font></b><br>iavf_dev_alarm_handler(): ICR01_ADMINQ is reported<br>iavf_handle_virtchnl_msg(): adminq response is received, opcode = 24<br>iavf_dev_alarm_handler(): ICR01_ADMINQ is reported<br>iavf_handle_virtchnl_msg(): adminq response is received, opcode = 23<br>iavf_dev_alarm_handler(): ICR01_ADMINQ is reported<br>iavf_handle_virtchnl_msg(): adminq response is received, opcode = 25<br>iavf_dev_alarm_handler(): ICR01_ADMINQ is reported<br>iavf_handle_virtchnl_msg(): adminq response is received, opcode = 26<br>Port 0 Rx offload RSS_HASH is not requested but enabled<br>EAL: Trying to obtain current memory policy.<br>EAL: Setting policy MPOL_PREFERRED for socket 0<br>EAL: alloc_seg(): mmap() failed: Cannot allocate memory<br>EAL: Ask a virtual area of 0x200000 bytes<br>EAL: Virtual area found at 0x100400000 (size = 0x200000)<br>EAL: attempted to allocate 1 segments, but only 0 were allocated<br>EAL: Restoring previous memory policy: 0<br>EAL: Error - exiting with code: 1<br>  Cause: Cannot init mbuf pool on socket 0<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 11, 2023 at 2:03 PM Stephen Hemminger <<a href="mailto:stephen@networkplumber.org">stephen@networkplumber.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, 11 Apr 2023 12:51:54 -0400<br>
Dinesh Kumar <<a href="mailto:raidinesh@utexas.edu" target="_blank">raidinesh@utexas.edu</a>> wrote:<br>
<br>
> Hi Stephen ,<br>
> <br>
> Thanks for your suggestions.I am able to resolve --vdev error  however I am<br>
> having another issue related to buffer.<br>
> .*/dpdk-l3fwd -c f -n 4 --vdev=net_tap3 -- -p 0x3<br>
> --config="(0,0,1),(0,1,2)"*<br>
> EAL: Detected CPU lcores: 8<br>
> EAL: Detected NUMA nodes: 1<br>
> EAL: Detected static linkage of DPDK<br>
> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket<br>
> EAL: Selected IOVA mode 'PA'<br>
> EAL: No available 1048576 kB hugepages reported<br>
> EAL: VFIO support initialized<br>
> EAL: Probe PCI driver: net_virtio (1af4:1000) device: 0000:00:03.0 (socket<br>
> 0)<br>
> eth_virtio_pci_init(): Failed to init PCI device<br>
> EAL: Requested device 0000:00:03.0 cannot be used<br>
> EAL: Probe PCI driver: net_iavf (8086:154c) device: 0000:00:05.0 (socket 0)<br>
> EAL: Probe PCI driver: net_iavf (8086:154c) device: 0000:00:06.0 (socket 0)<br>
> TELEMETRY: No legacy callbacks, legacy socket not created<br>
> Neither LPM, EM, or FIB selected, defaulting to LPM<br>
> Initializing port 0 ... Creating queues: nb_rxq=2 nb_txq=4... Port 0<br>
> modified RSS hash function based on hardware support,requested:0xa38c<br>
> configured:0x238c<br>
> <br>
> <br>
> <br>
> *iavf_dev_init_vlan(): Failed to update vlan offloadiavf_dev_configure():<br>
> configure VLAN failed: -95EAL: Error - exiting with code: 1  Cause: Cannot<br>
> init mbuf pool on socket 0*<br>
> <br>
> Do I need to update any parameters?<br>
> Do I need to add a routing rule parameter?<br>
> Any help /pointers will be really appreciated.<br>
> FYI. I just want to testL3  forwarding via DPDK using the Tap interface The<br>
> flow is :<br>
> On Vm1 .*/dpdk-l3fwd will create a Tap interface and then I will link this<br>
> interface with a network namespace and then ping a destination address via<br>
> the DPDK application running on VM1 and get captured on DPDK application<br>
> running on another VM2 and I am stuck with creation Tap interface on VM1<br>
> via *  .<br>
> */dpdk-l3fwd.*<br>
> Regards,<br>
> Dinesh Kumar<br>
> <br>
> <br>
> <br>
> On Mon, Apr 10, 2023 at 7:08 PM Stephen Hemminger <<br>
> <a href="mailto:stephen@networkplumber.org" target="_blank">stephen@networkplumber.org</a>> wrote:  <br>
> <br>
> > On Mon, 10 Apr 2023 18:47:59 -0400<br>
> > Dinesh Kumar <<a href="mailto:raidinesh@utexas.edu" target="_blank">raidinesh@utexas.edu</a>> wrote:<br>
> >  <br>
> > > Hi There,<br>
> > > I am new to the DPDK example and having issue with using  --vdev options<br>
> > > for DPDK example and it is throwing the below error.<br>
> > ><br>
> > > ./dpdk-l3fwd --log-level *:debug -c f -n 4 -- -p 0x3 --vdev<br>
> > > 'net_pcap0,rx_pcap=input.pcap,tx_pcap=output.pcap'<br>
> > ><br>
> > > -----------------------<br>
> > > iavf_check_api_version(): Peer is supported PF host<br>
> > > iavf_read_msg_from_pf(): Can't read msg from AQ<br>
> > > iavf_read_msg_from_pf(): AQ from pf carries opcode 3, retval 0<br>
> > > iavf_dev_alarm_handler(): ICR01_ADMINQ is reported<br>
> > > iavf_handle_pf_event_msg(): VIRTCHNL_EVENT_LINK_CHANGE event<br>
> > > iavf_handle_virtchnl_msg(): adminq response is received, opcode = 26<br>
> > > EAL: lib.telemetry log level changed from disabled to debug<br>
> > > TELEMETRY: Attempting socket bind to path<br>
> > > '/var/run/dpdk/rte/dpdk_telemetry.v2'<br>
> > > TELEMETRY: Socket creation and binding ok<br>
> > > TELEMETRY: Telemetry initialized ok<br>
> > > TELEMETRY: No legacy callbacks, legacy socket not created<br>
> > > *./dpdk-l3fwd: unrecognized option '--vdev'*<br>
> > > ./dpdk-l3fwd [EAL options] -- -p PORTMASK [-P] [--lookup] --config<br>
> > > (port,queue,lcore)[,(port,queue,lcore)] [--rx-queue-size NPKTS]<br>
> > > [--tx-queue-size NPKTS] [--eth-dest=X,MM:MM:MM:MM:MM:MM] [--max-pkt-len<br>
> > > PKTLEN] [--no-numa] [--hash-entry-num] [--ipv6] [--parse-ptype]<br>
> > > [--per-port-pool] [--mode] [--eventq-sched] [--event-vector<br>
> > > [--event-vector-size SIZE] [--event-vector-tmo NS]] [-E] [-L]<br>
> > ><br>
> > > please let me know if I am missing some options that need to be added  <br>
> > with  <br>
> > > --vdev  <br>
> ><br>
> ><br>
> > DPDK options are split into the options for the DPDK infrastructure (EAL)<br>
> > and those<br>
> > used by the applications. They are separated by the -- option.<br>
> ><br>
> > In your example, the vdev option belongs to the DPDK infrastructure not<br>
> > the application.<br>
> > Put it it before the -- and it should work<br>
> >  <br>
<br>
I think you are assuming that the DPDK tap device is for using an<br>
existing tap device. That is not correct.<br>
The DPDK tap interface makes a tap device for its use.<br>
</blockquote></div>