summaryrefslogtreecommitdiff
path: root/examples
AgeCommit message (Collapse)Author
2019-07-02examples/vhost_crypto: support build with pkg-configBruce Richardson
The vhost_crypto example app did not check for a libdpdk pkg-config file and attempt to build using that. Add support for that method of compile to align the app with the other examples. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-07-02examples/vdpa: support build with pkg-configBruce Richardson
The vdpa example app did not check for a libdpdk pkg-config file and attempt to build using that. Add support for that method of compile to align the app with the other examples. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-07-02examples: support relocated DPDK installBruce Richardson
For testing of DPDK, we want to override the prefix given by the pkg-config file, so that we can get correct paths for DPDK installed in an unusual location. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-07-01examples/l3fwd-vf: remove unused Rx/Tx configurationBao-Long Tran
The RX and TX Prefetch, Host, and Write-back threshold values are defined but not used anywhere. They are leftovers from a previous patch. Fixes: 81f7ecd9 ("examples: use factorized default Rx/Tx configuration") Cc: stable@dpdk.org Signed-off-by: Bao-Long Tran <longtb5@viettel.com.vn>
2019-06-28examples/flow_filtering: remove out-of-date commentXiaolong Ye
Now we've setup both rx and tx queues. Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Ori Kam <orika@mellanox.com>
2019-06-29examples/l3fwd-power: fix build with gcc 4Thomas Monjalon
error: ‘for’ loop initial declarations are only allowed in C99 mode Fixes: 609e79841fcf ("examples/l3fwd-power: add telemetry mode") Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2019-06-28examples/l3fwd-power: add telemetry modeReshma Pattan
Add new telemetry mode support for l3fwd-power. This is a standalone mode, in this mode l3fwd-power does simple l3fwding along with calculating empty polls, full polls, and busy percentage for each forwarding core. The aggregation of these values of all cores is reported as application level telemetry to metric library for every 500ms from the master core. The busy percentage is calculated by recording the poll_count and when the count reaches a defined value the total cycles it took is measured and compared with minimum and maximum reference cycles and busy rate is set according to either 0% or 50% or 100%. Signed-off-by: Reshma Pattan <reshma.pattan@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
2019-06-26build: enable BSD features visibility for FreeBSDMarcin Smoczynski
When a component uses either XOPEN_SOURCE or POSIX_C_SOURCE macro explicitly in its build recipe, it restricts visibility of a non POSIX features subset, such as IANA protocol numbers (IPPROTO_* macros). Non standard features are enabled by default for DPDK both for Linux thanks to _GNU_SOURCE and for FreeBSD thanks to __BSD_VISIBLE. However using XOPEN_SOURCE or POSIX_(C_)SOURCE in a component causes __BSD_VISIBLE to be defined to 0 for FreeBSD, causing different feature sets visibility for Linux and FreeBSD. It restricts from using IPPROTO macros in public headers, such as rte_ip.h, despite the fact they are already widely used in sources. Add __BSD_VISIBLE macro specified unconditionally for FreeBSD targets which enforces feature sets visibility unification between Linux and FreeBSD. Add single -D_GNU_SOURCE to config/meson.build as a project argument instead of adding separate directive for each project subtree. This patch solves the problem of build breaks for [1] on FreeBSD [2] following the discussion [3]. [1] https://mails.dpdk.org/archives/dev/2019-May/131885.html [2] http://mails.dpdk.org/archives/test-report/2019-May/082263.html [3] https://mails.dpdk.org/archives/dev/2019-May/132110.html Signed-off-by: Marcin Smoczynski <marcinx.smoczynski@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2019-06-20examples/vhost_crypto: remove unused functionFan Zhang
This patch tries to fix the coverity issue of unchecked return value. Since the function that causes the problem is unused, it is removed completely. Coverity issue: 336816 Fixes: f5188211c721 ("examples/vhost_crypto: add sample application") Cc: stable@dpdk.org Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Reviewed-by: Jens Freimann <jfreimann@redhat.com> Acked-by: Marko Kovacevic <marko.kovacevic@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2019-06-20examples/vdpa: remove trace of legacy linuxappDavid Marchand
This check on Linux environment has been added at a time when we already had switched to using the boolean RTE_EXEC_ENV_LINUXAPP. It was then missed when converting to RTE_EXEC_ENV_LINUX. Fixes: edbed86d1cc3 ("examples/vdpa: introduce a new sample for vDPA") Fixes: 742bde12f3bd ("build/linux: rename macro from LINUXAPP to LINUX") Cc: stable@dpdk.org Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
2019-06-06examples/rxtx_callbacks: support HW timestampTom Barbette
Use rxtx callback to demonstrate a way to use rte_eth_read_clock to convert the hardware timestamps to an amount of cycles. This allows to get the amount of time the packet spent since its entry in the device. While the regular latency only shows the latency from when it entered the software stack. Signed-off-by: Tom Barbette <barbette@kth.se> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-06-05examples/multi_process: fix FreeBSD buildDavid Marchand
Caught on FreeBSD 12: /usr/include/netinet/ip.h:71:17: error: field 'ip_src' has incomplete type struct in_addr ip_src,ip_dst; /* source and dest address */ ^~~~~~ On FreeBSD, netinet/ip.h is not auto sufficient like on Linux. But actually, this header is not used in the example, just remove it. Fixes: 764bf26873b9 ("add FreeBSD support") Cc: stable@dpdk.org Signed-off-by: David Marchand <david.marchand@redhat.com> Tested-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2019-06-04examples/ip_fragmentation: fix Tx queues initAli Alnubani
The application tries to configure queue ids larger than the maximum allowed by MAX_TX_QUEUE_PER_PORT. This causes the startup error: " ... Initializing port 0 on lcore 0... Address:7C:FE:90:12:23:0D txq=0,0 txq=1,1 txq=2,2 txq=3,3 txq=4,4 txq=5,5 txq=6,6 txq=7,7 txq=8,8 txq=9,9 txq=10,10 txq=11,11 txq=12,12 txq=13,13 txq=14,14 txq=15,15 txq=16,16 Invalid TX queue_id=16 EAL: Error - exiting with code: 1 Cause: rte_eth_tx_queue_setup: err=-22, port=0 " The error reproduces when lcores aren't set, and when the machine has more than 16 cores. Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
2019-06-04examples/multi_process: build with mesonAli Alnubani
This enables building the example multiprocess applications in the subdirectory multi_process. Signed-off-by: Ali Alnubani <alialnu@mellanox.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-06-04examples: use child directory as nameAli Alnubani
This would allow correctly naming an application residing in a subdirectory. For example, if the example is set to 'path/to/app', then the name would be 'app'. This doesn't affect the naming of an example that isn't in a subdirectory. Signed-off-by: Ali Alnubani <alialnu@mellanox.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-06-03build: remove unnecessary large file support definesBruce Richardson
Since we now always use _FILE_OFFSET_BITS=64 flag when building DPDK, we can remove the Makefile and C-file #defines setting it individually for parts of the build. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-06-03net: replace IPv4/v6 constants with uppercase nameDavid Marchand
Since we change these macros, we might as well avoid triggering complaints from checkpatch because of mixed case. old=RTE_IPv4 new=RTE_IPV4 git grep -lw $old | xargs sed -i -e "s/\<$old\>/$new/g" old=RTE_ETHER_TYPE_IPv4 new=RTE_ETHER_TYPE_IPV4 git grep -lw $old | xargs sed -i -e "s/\<$old\>/$new/g" old=RTE_ETHER_TYPE_IPv6 new=RTE_ETHER_TYPE_IPV6 git grep -lw $old | xargs sed -i -e "s/\<$old\>/$new/g" Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Olivier Matz <olivier.matz@6wind.com>
2019-06-03examples/bond: use lcore accessorsStephen Hemminger
Referring to lcore_config directly is no longer recommended. Also remove unnecessary assignment of slave_core_id. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Marchand <david.marchand@redhat.com>
2019-05-30examples/qos_sched: do not dereference global config structDavid Marchand
Prefer the existing apis rather than direct access the configuration structure. Fixes: de3cfa2c9823 ("sched: initial import") Cc: stable@dpdk.org Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2019-05-30examples/multi_process: do not dereference global config structDavid Marchand
Prefer the existing apis rather than direct access the configuration structure. Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2019-05-29kni: remove ethtool supportFerruh Yigit
Current design requires kernel drivers and they need to be probed by Linux up to some level so that they can be usable by DPDK for ethtool support, this requires maintaining the Linux drivers in DPDK. Also ethtool support is limited and hard, if not impossible, to expand to other PMDs. Since KNI ethtool support is not used commonly, if not used at all, removing the support for the sake of simplicity and maintenance. Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Neil Horman <nhorman@tuxdriver.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
2019-05-29fix off-by-one errors in snprintfMichael Santana
snprintf guarantees to always correctly place a null terminator in the buffer string. So manually placing a null terminator in a buffer right after a call to snprintf is redundant code. Additionally, there is no need to use 'sizeof(buffer) - 1' in snprintf as this means we are not using the last character in the buffer. 'sizeof(buffer)' is enough. Cc: stable@dpdk.org Signed-off-by: Michael Santana <msantana@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
2019-05-24net: add rte prefix to UDP structureOlivier Matz
Add 'rte_' prefix to structures: - rename struct udp_hdr as struct rte_udp_hdr. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to TCP structureOlivier Matz
Add 'rte_' prefix to structures: - rename struct tcp_hdr as struct rte_tcp_hdr. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to SCTP structureOlivier Matz
Add 'rte_' prefix to structures: - rename struct sctp_hdr as struct rte_sctp_hdr. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to IP definesOlivier Matz
Add 'RTE_' prefix to defines: - rename IPv4( as RTE_IPv4(. - rename IPV4_MAX_PKT_LEN as RTE_IPV4_MAX_PKT_LEN. - rename IPV4_HDR_IHL_MASK as RTE_IPV4_HDR_IHL_MASK. - rename IPV4_IHL_MULTIPLIER as RTE_IPV4_IHL_MULTIPLIER. - rename IPV4_HDR_DF_SHIFT as RTE_IPV4_HDR_DF_SHIFT. - rename IPV4_HDR_MF_SHIFT as RTE_IPV4_HDR_MF_SHIFT. - rename IPV4_HDR_FO_SHIFT as RTE_IPV4_HDR_FO_SHIFT. - rename IPV4_HDR_DF_FLAG as RTE_IPV4_HDR_DF_FLAG. - rename IPV4_HDR_MF_FLAG as RTE_IPV4_HDR_MF_FLAG. - rename IPV4_HDR_OFFSET_MASK as RTE_IPV4_HDR_OFFSET_MASK. - rename IPV4_HDR_OFFSET_UNITS as RTE_IPV4_HDR_OFFSET_UNITS. - rename IPV4_ANY as RTE_IPV4_ANY. - rename IPV4_LOOPBACK as RTE_IPV4_LOOPBACK. - rename IPV4_BROADCAST as RTE_IPV4_BROADCAST. - rename IPV4_ALLHOSTS_GROUP as RTE_IPV4_ALLHOSTS_GROUP. - rename IPV4_ALLRTRS_GROUP as RTE_IPV4_ALLRTRS_GROUP. - rename IPV4_MAX_LOCAL_GROUP as RTE_IPV4_MAX_LOCAL_GROUP. - rename IPV4_MIN_MCAST as RTE_IPV4_MIN_MCAST. - rename IPV4_MAX_MCAST as RTE_IPV4_MAX_MCAST. - rename IS_IPV4_MCAST as RTE_IS_IPV4_MCAST. - rename IPV6_HDR_FL_SHIFT as RTE_IPV6_HDR_FL_SHIFT. - rename IPV6_HDR_TC_SHIFT as RTE_IPV6_HDR_TC_SHIFT. - rename IPV6_HDR_FL_MASK as RTE_IPV6_HDR_FL_MASK. - rename IPV6_HDR_TC_MASK as RTE_IPV6_HDR_TC_MASK. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to IP structureOlivier Matz
Add 'rte_' prefix to structures: - rename struct ipv4_hdr as struct rte_ipv4_hdr. - rename struct ipv6_hdr as struct rte_ipv6_hdr. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to ESP structureOlivier Matz
Add 'rte_' prefix to structures: - rename struct esp_hdr as struct rte_esp_hdr. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to ether definesOlivier Matz
Add 'RTE_' prefix to defines: - rename ETHER_ADDR_LEN as RTE_ETHER_ADDR_LEN. - rename ETHER_TYPE_LEN as RTE_ETHER_TYPE_LEN. - rename ETHER_CRC_LEN as RTE_ETHER_CRC_LEN. - rename ETHER_HDR_LEN as RTE_ETHER_HDR_LEN. - rename ETHER_MIN_LEN as RTE_ETHER_MIN_LEN. - rename ETHER_MAX_LEN as RTE_ETHER_MAX_LEN. - rename ETHER_MTU as RTE_ETHER_MTU. - rename ETHER_MAX_VLAN_FRAME_LEN as RTE_ETHER_MAX_VLAN_FRAME_LEN. - rename ETHER_MAX_VLAN_ID as RTE_ETHER_MAX_VLAN_ID. - rename ETHER_MAX_JUMBO_FRAME_LEN as RTE_ETHER_MAX_JUMBO_FRAME_LEN. - rename ETHER_MIN_MTU as RTE_ETHER_MIN_MTU. - rename ETHER_LOCAL_ADMIN_ADDR as RTE_ETHER_LOCAL_ADMIN_ADDR. - rename ETHER_GROUP_ADDR as RTE_ETHER_GROUP_ADDR. - rename ETHER_TYPE_IPv4 as RTE_ETHER_TYPE_IPv4. - rename ETHER_TYPE_IPv6 as RTE_ETHER_TYPE_IPv6. - rename ETHER_TYPE_ARP as RTE_ETHER_TYPE_ARP. - rename ETHER_TYPE_VLAN as RTE_ETHER_TYPE_VLAN. - rename ETHER_TYPE_RARP as RTE_ETHER_TYPE_RARP. - rename ETHER_TYPE_QINQ as RTE_ETHER_TYPE_QINQ. - rename ETHER_TYPE_ETAG as RTE_ETHER_TYPE_ETAG. - rename ETHER_TYPE_1588 as RTE_ETHER_TYPE_1588. - rename ETHER_TYPE_SLOW as RTE_ETHER_TYPE_SLOW. - rename ETHER_TYPE_TEB as RTE_ETHER_TYPE_TEB. - rename ETHER_TYPE_LLDP as RTE_ETHER_TYPE_LLDP. - rename ETHER_TYPE_MPLS as RTE_ETHER_TYPE_MPLS. - rename ETHER_TYPE_MPLSM as RTE_ETHER_TYPE_MPLSM. - rename ETHER_VXLAN_HLEN as RTE_ETHER_VXLAN_HLEN. - rename ETHER_ADDR_FMT_SIZE as RTE_ETHER_ADDR_FMT_SIZE. - rename VXLAN_GPE_TYPE_IPV4 as RTE_VXLAN_GPE_TYPE_IPV4. - rename VXLAN_GPE_TYPE_IPV6 as RTE_VXLAN_GPE_TYPE_IPV6. - rename VXLAN_GPE_TYPE_ETH as RTE_VXLAN_GPE_TYPE_ETH. - rename VXLAN_GPE_TYPE_NSH as RTE_VXLAN_GPE_TYPE_NSH. - rename VXLAN_GPE_TYPE_MPLS as RTE_VXLAN_GPE_TYPE_MPLS. - rename VXLAN_GPE_TYPE_GBP as RTE_VXLAN_GPE_TYPE_GBP. - rename VXLAN_GPE_TYPE_VBNG as RTE_VXLAN_GPE_TYPE_VBNG. - rename ETHER_VXLAN_GPE_HLEN as RTE_ETHER_VXLAN_GPE_HLEN. Do not update the command line library to avoid adding a dependency to librte_net. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to ether functionsOlivier Matz
Add 'rte_' prefix to functions: - rename is_same_ether_addr() as rte_is_same_ether_addr(). - rename is_zero_ether_addr() as rte_is_zero_ether_addr(). - rename is_unicast_ether_addr() as rte_is_unicast_ether_addr(). - rename is_multicast_ether_addr() as rte_is_multicast_ether_addr(). - rename is_broadcast_ether_addr() as rte_is_broadcast_ether_addr(). - rename is_universal_ether_addr() as rte_is_universal_ether_addr(). - rename is_local_admin_ether_addr() as rte_is_local_admin_ether_addr(). - rename is_valid_assigned_ether_addr() as rte_is_valid_assigned_ether_addr(). - rename eth_random_addr() as rte_eth_random_addr(). - rename ether_addr_copy() as rte_ether_addr_copy(). - rename ether_format_addr() as rte_ether_format_addr(). Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to ether structuresOlivier Matz
Add 'rte_' prefix to structures: - rename struct ether_addr as struct rte_ether_addr. - rename struct ether_hdr as struct rte_ether_hdr. - rename struct vlan_hdr as struct rte_vlan_hdr. - rename struct vxlan_hdr as struct rte_vxlan_hdr. - rename struct vxlan_gpe_hdr as struct rte_vxlan_gpe_hdr. Do not update the command line library to avoid adding a dependency to librte_net. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to ARP definesOlivier Matz
Add 'RTE_' prefix to defines: - rename ARP_HRD_ETHER as RTE_ARP_HRD_ETHER. - rename ARP_OP_REQUEST as RTE_ARP_OP_REQUEST. - rename ARP_OP_REPLY as RTE_ARP_OP_REPLY. - rename ARP_OP_REVREQUEST as RTE_ARP_OP_REVREQUEST. - rename ARP_OP_REVREPLY as RTE_ARP_OP_REVREPLY. - rename ARP_OP_INVREQUEST as RTE_ARP_OP_INVREQUEST. - rename ARP_OP_INVREPLY as RTE_ARP_OP_INVREPLY. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-24net: add rte prefix to ARP structuresOlivier Matz
Also rename arp_hrd, arp_pro, arp_hln, arp_pln and arp_op fields to avoid conflict with the #defines in gnu libc. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-05-20examples: fix make clean when using pkg-configBruce Richardson
The "make clean" command had a number of issues: - the "--ignore-fail-on-non-empty" flag is not present on BSD - the call to remove the build folder would fail if there was no build folder present. These are fixed by only removing the build folder if it exists, and by using -p flag to rmdir in place of --ignore-fail-on-non-empty Fixes: 22119c4591a0 ("examples: use pkg-config in makefiles") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-05-20examples: remove auto-generation of examples listBruce Richardson
The examples/meson.build file scanned the filesystem to find all examples to build (for examples=all option) and install. However, using run_command and scanning the filesystem prevented ninja from properly detecting the addition or removal of any examples - one had to recreate the build directory from scratch to guarantee correct detection of all examples. This patch replaces this generated list with a static list of examples, thereby allowing proper tracking by ninja/meson, but at the cost of having to update this file when a new example is added or removed. This also fixes an issue with Windows builds, since "sh" is not available there. Fixes: 2daf565f91b5 ("examples: install as part of ninja install") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-05-20examples: fix install with empty meson parameterBruce Richardson
While the examples were being installed into the appropriate install path when processing the examples/meson.build file, that file was only processed if the "examples" meson parameter was non-empty. Since we now do more than just build the examples, we need to unconditionally process the file. Fixes: 2daf565f91b5 ("examples: install as part of ninja install") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-05-10examples/ipsec-secgw: fix build error logMarcin Smoczynski
Fix invalid indentation - extra whitespace before error directive which is causing syntax error when no pkgconfig file for the DPDK is found and RTE_SDK is not specified. Fixes: d299106e8e31 ("examples/ipsec-secgw: add IPsec sample application") Cc: stable@dpdk.org Signed-off-by: Marcin Smoczynski <marcinx.smoczynski@intel.com>
2019-05-03examples/power: fix json null terminationDavid Hunt
coverity complains about a null-termination after a read, so we terminate once we exit the do-while read loop. Coverity issue: 337680 Fixes: a63504a90f ("examples/power: add JSON string handling") Cc: stable@dpdk.org Signed-off-by: David Hunt <david.hunt@intel.com> Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
2019-05-03examples/power: fix buffer overrunDavid Hunt
The freqs array in freq_info struct has RTE_MAX_LCORE_FREQS elements, yet the code can attempt to look at the index at RTE_MAX_LCORE, which may be greater than RTE_MAX_LCORE_FREQS. Fix to limit index to RTE_MAX_LCORE_FREQS. Coverity issue: 337660 Fixes: d26c18c93260 ("examples/vm_power: cpu frequency in host") Cc: stable@dpdk.org Signed-off-by: David Hunt <david.hunt@intel.com> Acked-by: Reshma Pattan <reshma.pattan@intel.com>
2019-05-03examples/multi_process: fix buffer underrunYongseok Koh
For client_server_mp, the total number of buffers for the mbuf mempool should be correctly calculated. Otherwise, having more clients will stop traffic. Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
2019-05-03examples/l3fwd: support separate buffer pool per portShreyansh Jain
Traditionally, only a single buffer pool per port (or, per-port-per-socket) is created in l3fwd application. If separate pools are created per-port, it might lead to gain in performance as packet alloc/dealloc requests would be isolated across ports (and their corresponding lcores). This patch adds an argument '--per-port-pool' to the l3fwd application. By default, old mode of single pool per port (split on sockets) is active. L3fwd user guide is also updated by this patch. Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>
2019-05-03doc: fix spelling reported by aspell in commentsJohn McNamara
Fix spelling errors in the doxygen docs. Signed-off-by: John McNamara <john.mcnamara@intel.com>
2019-05-02examples: install as part of ninja installBruce Richardson
When we install dpdk onto a system, we want to put the examples into the /usr/share/dpdk (or /usr/local/share) directory for reference. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-05-02examples/l3fwd: fix build on FreeBSDBruce Richardson
On freebsd we need to include sys/socket.h to get the definition of AF_INET in order to compile. Fixes: d5ceea4ab160 ("examples/l3fwd: format IP addresses for printing") Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-04-23examples/ipsec-secgw: fix pool usage for security sessionAkhil Goyal
Currently, two separate mempools are being used for creating crypto sessions and its private data. crypto sessions are created and initialized separately, so a separate mempool is passed to each API, but in case of security sessions, where only one API create and initialize the private data as well. So if session mempool is passed to create a security session, the mempool element size is not sufficient enough to hold the private data as well. As a perfect solution, the security session create API should take 2 mempools for header and private data and initiatlize accordingly, but that would mean an API breakage, which will be done in the next release cycle. So introducing this patch as a workaround to resolve this issue. Fixes: 261bbff75e34 ("examples: use separate crypto session mempools") Cc: stable@dpdk.org Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2019-04-23examples/ipsec-secgw: fix SPD no-match caseKonstantin Ananyev
acl_classify() returns zero value when no matching rule was found. Currently ipsec-secgw treats it as a valid SPI value, though it has to discard such packets. Error could be easily observed by sending outbound unmatched packets, user will see something like that in the log: IPSEC: No cryptodev: core 7, cipher_algo 0, auth_algo 0, aead_algo 0 To fix it we need to treat packets with zero result from acl_classify() as invalid ones. Also we can change DISCARD and BYPASS values to simplify checks and save some extra space for valid SPI values. To summarize the approach: 1. have special SPI values for DISCARD and BYPASS. 2. store in SPD full SPI value. 3. after acl_classify(), first check SPI value for DISCARD and BYPASS, then convert it in SA index. 4. add check at initilisation time that for each SPD rule there is a corresponding SA entry (with the same SPI). Also marked few global variables as *static*. Fixes: 906257e965b7 ("examples/ipsec-secgw: support IPv6") Fixes: 2a5106af132b ("examples/ipsec-secgw: fix corner case for SPI value") Cc: stable@dpdk.org Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
2019-04-23examples/vhost_scsi: fix null-check for parameterBruce Richardson
Coverity points out that there is a check in the main thread loop for the ctrlr->bdev being NULL, but by that stage the pointer has already been dereferenced. Therefore, for safety, before we enter the loop do an initial check on the parameter structure. Coverity issue: 158657 Fixes: db75c7af19bb ("examples/vhost_scsi: introduce a new sample app") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
2019-04-23examples/vhost_scsi: fix header check for meson buildBruce Richardson
The header check for the example app was looking for virtio_scsi.h without the "linux/" prefix, which meant it was never getting found when it should have been. Fixes: 8d47a753b7cb ("examples/vhost_scsi: disable build if missing dependency") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
2019-04-23examples/power: fix build with some disabled PMDsDavid Christensen
Running the devtools/test-build.sh script on IBM Power systems fails because the IXGBE_PMD is explicity disabled for Power as an untested driver, but the examples/vm_power_manager application has a hard dependency on a function call in the IXGBE_PMD. Modify the example application so that all dependencies on PMD code are conditionally compiled. Bugzilla ID: 237 Fixes: c9a4779135c9 ("examples/vm_power_mgr: set MAC address of VF") Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Acked-by: David Hunt <david.hunt@intel.com>
2019-04-23examples/power: fix overflowed valueReshma Pattan
Fix the data type of last_branches, last_branch_misses from uint32_t to uint64_t, and for hits_diff, miss_diff from int to int64_t respectively to fix possible overflow or truncation. Coverity issue: 337677 Fixes: 4b1a631b8a ("examples/vm_power: add oob monitoring functions") Cc: stable@dpdk.org Signed-off-by: Reshma Pattan <reshma.pattan@intel.com> Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>