[dpdk-dev] DPDK PDUMP Issue

Varghese, Vipin vipin.varghese at intel.com
Wed Jul 29 11:51:29 CEST 2020


Hi Dikshant,

Looks like the custom Makefile log is quite different in passing DPDK CFLAGS and LDFLAGS. Also here are couple of surprises for me 

1. Unable to find `make -n` logs

2. presence of g++ is present in each line

3. unable to find include option

4. request was to run `make -n` and cross the relevant libraries are bound within the `-Wl,--whole-archive` and `-Wl,--no-whole-archive `. 

5. Unable to find `-Wl,-lpcap` passed for `-Wl,-lrte_pmd_pcap -Wl,-lrte_pdump`

Hint: I normally take up sample like example/l2fwd and work towards to removing unwanted libraries while keeping the content and format intact for my custom makefile. 

> -----Original Message-----
> From: Dikshant Chitkara <dchitkara at Airspan.com>
> Sent: Wednesday, July 29, 2020 2:44 PM
> To: Varghese, Vipin <vipin.varghese at intel.com>; Stephen Hemminger
> <stephen at networkplumber.org>
> Cc: users at dpdk.org; dev at dpdk.org; Amir Ilan <ailan at Airspan.com>; Veeresh
> Patil <vpatil at Airspan.com>
> Subject: RE: [dpdk-dev] DPDK PDUMP Issue
> 
> Hi Vipin,
> 
> I tried using `-Wl,--whole-archive` and `-Wl,--no-whole-archive `  option with
> my necessary libraries but it does not seem to help as well.
> 
> Below is the makefile log for my app:
> 
> g++ -shared -Wl,--export-dynamic packet_generator.o
> g++ -L/mnt/data/dchitkara/DPDK_2020_01_30_x86/x86_64-native-linux-icc/li
> g++ b -Wl,--whole-archive -Wl,-lrte_mempool_ring -Wl,-lrte_member
> g++ -Wl,-lrte_eventdev -Wl,-lrte_pmd_pcap -Wl,-lrte_pdump
> g++ -Wl,-lrte_bus_vmbus -Wl,-lrte_pci -Wl,-lrte_bus_pci
> g++ -Wl,-lrte_bus_vdev -Wl,-lrte_net -Wl,-lrte_distributor
> g++ -Wl,-lrte_reorder -Wl,-lrte_kni -Wl,-lrte_pipeline -Wl,-lrte_table
> g++ -Wl,-lrte_port -Wl,-lrte_timer -Wl,-lrte_hash -Wl,-lrte_jobstats
> g++ -Wl,-lrte_lpm -Wl,-lrte_power -Wl,-lrte_acl -Wl,-lrte_meter
> g++ -Wl,-lrte_sched -Wl,-lm -Wl,-lrt -Wl,-lrte_vhost -Wl,--start-group
> g++ -Wl,-lrte_kvargs -Wl,-lrte_mbuf -Wl,-lrte_ip_frag -Wl,-lrte_ethdev
> g++ -Wl,-lrte_cryptodev -Wl,-lrte_mempool -Wl,-lrte_ring -Wl,-lrte_eal
> g++ -Wl,-lrte_cmdline -Wl,-lrte_cfgfile -Wl,-lrte_pmd_bond
> g++ -Wl,-lrte_pmd_vmxnet3_uio -Wl,-lrte_pmd_virtio -Wl,-lrte_pmd_cxgbe
> g++ -Wl,-lrte_pmd_enic -Wl,-lrte_pmd_i40e -Wl,-lrte_pmd_fm10k
> g++ -Wl,-lrte_pmd_ixgbe -Wl,-lrte_pmd_e1000 -Wl,-lrte_pmd_ring
> g++ -Wl,-lrte_pmd_af_packet -Wl,-lrte_pmd_null -Wl,-lrt -Wl,-lm -Wl,-ldl
> g++ -Wl,--end-group -Wl,--no-whole-archive  -o
> g++ ../../../COMMON/../bin/PACKET_GENERATOR_TEST_MOD.so
> 
> 
> Thanks,
> Dikshant
> 
> Snipped
> 
> > Hi Team,
> >
> > With fix suggest in prev mail thread at testpmd side, PDUMP works with
> > testpmd.
> >
> > However when we try to run our own primary app with PDUMP as a
> > secondary process, PDUMP console comes up, however it does not capture
> any packets.
> >
> > Changes made at primary app side:
> > 1. PDUMP initialised just after rte eal init:
> >
> >   ret_pdump = rte_pdump_init();
> >        if (ret_pdump < 0) {
> >                printf("rte_pdump_init failed\n");
> >        }
> >        else
> >        {
> >                printf("rte_pdump_init success\n");
> >        }
> >
> > 2. Makefile modified to add all relevant files to be linked:
> >
> > LIB_SO     =-L$(DPDK_LIB) -lrte_mbuf -lrte_eal -lnuma -lrte_pmd_pcap -
> > lrte_pdump  -lrte_pmd_i40e -lrte_eal -lrte_ring -lrte_mempool
> > -lrte_cryptodev -lrte_ethdev -lrte_mbuf -lrte_mempool_ring  -lrte_member  -
> lrte_eventdev  -
> > lrte_bus_vmbus   -lrte_pci  -lrte_bus_pci  -lrte_bus_vdev  -lrte_net  -
> > lrte_distributor  -lrte_reorder  -lrte_kni  -lrte_pipeline -lrte_table
> > -lrte_timer  - lrte_hash  -lrte_jobstats  -lrte_lpm -lrte_power
> > -lrte_acl  -lrte_meter  -lrte_sch
> >
> > Even tried to link final DPDK lib so as well:
> > LIB_SO     =-L$(DPDK_LIB) -Wl,--whole-archive -ldpdk -Wl,--no-whole-archive -
> > L/usr/lib/x86_64-linux-gnu/ -fPIC
> 
> Ok, I think I have seen similar outcomes in custom Makefiles. Can you execute
> with `make -n` with the master Makefile and cross the necessary libraries are
> in bound between `-Wl,--whole-archive` and `-Wl,--no-whole-archive `
> (specically for shared libraries).
> 
> snipped



More information about the dev mailing list