Merge ~paelzer/ubuntu/+source/dpdk:lp-1940913-MRE-19.11.10-FOCAL into ubuntu/+source/dpdk:ubuntu/focal-devel
- Git
- lp:~paelzer/ubuntu/+source/dpdk
- lp-1940913-MRE-19.11.10-FOCAL
- Merge into ubuntu/focal-devel
Status: | Merged | ||||||||
---|---|---|---|---|---|---|---|---|---|
Approved by: | Christian Ehrhardt | ||||||||
Approved revision: | c78c4df84c9e53821650ac10b1e40cdcbc368bac | ||||||||
Merged at revision: | c78c4df84c9e53821650ac10b1e40cdcbc368bac | ||||||||
Proposed branch: | ~paelzer/ubuntu/+source/dpdk:lp-1940913-MRE-19.11.10-FOCAL | ||||||||
Merge into: | ubuntu/+source/dpdk:ubuntu/focal-devel | ||||||||
Diff against target: |
19632 lines (+5367/-2346) 459 files modified
MAINTAINERS (+0/-2) VERSION (+1/-1) app/meson.build (+0/-3) app/test-bbdev/test_bbdev_perf.c (+2/-2) app/test-compress-perf/comp_perf_options_parse.c (+1/-1) app/test-crypto-perf/cperf_options_parsing.c (+7/-1) app/test-crypto-perf/cperf_test_common.c (+1/-1) app/test-eventdev/evt_options.c (+2/-2) app/test-eventdev/parser.c (+3/-1) app/test-eventdev/parser.h (+1/-1) app/test-pmd/bpf_cmd.c (+1/-1) app/test-pmd/cmdline.c (+23/-16) app/test-pmd/cmdline_flow.c (+5/-1) app/test-pmd/config.c (+70/-9) app/test-pmd/csumonly.c (+11/-10) app/test-pmd/parameters.c (+2/-2) app/test-pmd/testpmd.c (+76/-99) app/test-pmd/testpmd.h (+1/-2) app/test/autotest_test_funcs.py (+4/-1) app/test/meson.build (+1/-2) app/test/packet_burst_generator.c (+3/-2) app/test/process.h (+8/-2) app/test/test.c (+6/-5) app/test/test_bpf.c (+1/-1) app/test/test_cmdline_ipaddr.c (+1/-1) app/test/test_cmdline_num.c (+2/-2) app/test/test_cryptodev.c (+24/-14) app/test/test_cryptodev_aes_test_vectors.h (+1/-1) app/test/test_distributor_perf.c (+4/-2) app/test/test_eal_flags.c (+1/-0) app/test/test_event_crypto_adapter.c (+4/-5) app/test/test_event_timer_adapter.c (+3/-1) app/test/test_flow_classify.c (+6/-0) app/test/test_kni.c (+6/-2) app/test/test_mbuf.c (+1/-1) app/test/test_mempool.c (+1/-1) app/test/test_power_cpufreq.c (+77/-20) app/test/test_prefetch.c (+1/-1) app/test/test_reciprocal_division_perf.c (+24/-17) app/test/test_stack.c (+4/-0) app/test/test_stack_perf.c (+4/-0) app/test/test_table_tables.c (+2/-1) app/test/test_timer_secondary.c (+4/-4) buildtools/check-experimental-syms.sh (+1/-1) buildtools/map-list-symbol.sh (+1/-1) config/meson.build (+6/-3) config/ppc_64/meson.build (+14/-3) debian/changelog (+12/-0) debian/patches/series (+1/-7) debian/patches/ubuntu/lp-1940957-net-i40e-support-25G-AOC-ACC-cables.patch (+42/-0) dev/null (+0/-50) devtools/check-maintainers.sh (+2/-2) devtools/test-meson-builds.sh (+1/-1) doc/build-sdk-meson.txt (+1/-1) doc/guides/bbdevs/fpga_lte_fec.rst (+1/-1) doc/guides/conf.py (+4/-2) doc/guides/contributing/stable.rst (+1/-1) doc/guides/cryptodevs/caam_jr.rst (+1/-1) doc/guides/cryptodevs/scheduler.rst (+1/-1) doc/guides/cryptodevs/virtio.rst (+1/-1) doc/guides/howto/pvp_reference_benchmark.rst (+1/-1) doc/guides/linux_gsg/linux_drivers.rst (+10/-0) doc/guides/nics/bnxt.rst (+3/-3) doc/guides/nics/ena.rst (+1/-1) doc/guides/nics/hns3.rst (+3/-3) doc/guides/nics/mlx5.rst (+8/-1) doc/guides/nics/netvsc.rst (+1/-1) doc/guides/nics/nfp.rst (+5/-5) doc/guides/nics/octeontx2.rst (+1/-1) doc/guides/nics/virtio.rst (+4/-3) doc/guides/nics/vmxnet3.rst (+2/-1) doc/guides/prog_guide/bbdev.rst (+1/-1) doc/guides/prog_guide/dev_kit_build_system.rst (+1/-1) doc/guides/prog_guide/env_abstraction_layer.rst (+1/-1) doc/guides/prog_guide/eventdev.rst (+1/-1) doc/guides/prog_guide/multi_proc_support.rst (+1/-1) doc/guides/prog_guide/qos_framework.rst (+1/-1) doc/guides/prog_guide/writing_efficient_code.rst (+8/-7) doc/guides/rawdevs/ntb.rst (+1/-1) doc/guides/rel_notes/deprecation.rst (+6/-0) doc/guides/rel_notes/known_issues.rst (+5/-5) doc/guides/rel_notes/release_16_11.rst (+1/-1) doc/guides/rel_notes/release_19_08.rst (+1/-1) doc/guides/rel_notes/release_19_11.rst (+738/-7) doc/guides/rel_notes/release_2_2.rst (+1/-1) doc/guides/sample_app_ug/l2_forward_cat.rst (+1/-1) doc/guides/sample_app_ug/performance_thread.rst (+1/-1) doc/guides/sample_app_ug/vhost.rst (+1/-1) doc/guides/testpmd_app_ug/testpmd_funcs.rst (+3/-2) drivers/bus/dpaa/base/fman/fman.c (+1/-1) drivers/bus/dpaa/base/fman/fman_hw.c (+16/-17) drivers/bus/dpaa/base/fman/netcfg_layer.c (+2/-2) drivers/bus/dpaa/base/qbman/bman_driver.c (+9/-4) drivers/bus/dpaa/base/qbman/qman_driver.c (+12/-5) drivers/bus/dpaa/include/fsl_qman.h (+1/-1) drivers/bus/dpaa/include/netcfg.h (+0/-1) drivers/bus/fslmc/fslmc_logs.h (+0/-2) drivers/bus/fslmc/qbman/qbman_portal.c (+3/-11) drivers/bus/pci/pci_common.c (+4/-1) drivers/bus/vmbus/vmbus_common.c (+4/-1) drivers/common/dpaax/Makefile (+2/-1) drivers/common/dpaax/caamflib.c (+16/-0) drivers/common/dpaax/caamflib/compat.h (+6/-6) drivers/common/dpaax/compat.h (+0/-1) drivers/common/dpaax/dpaax_iova_table.c (+3/-1) drivers/common/dpaax/meson.build (+3/-1) drivers/common/dpaax/rte_common_dpaax_version.map (+4/-0) drivers/common/octeontx2/otx2_dev.h (+3/-0) drivers/common/qat/qat_device.h (+1/-1) drivers/compress/qat/qat_comp.c (+4/-3) drivers/compress/qat/qat_comp_pmd.c (+75/-36) drivers/crypto/caam_jr/Makefile (+0/-7) drivers/crypto/caam_jr/caam_jr.c (+0/-2) drivers/crypto/caam_jr/meson.build (+0/-5) drivers/crypto/dpaa2_sec/Makefile (+0/-7) drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c (+26/-28) drivers/crypto/dpaa2_sec/meson.build (+0/-5) drivers/crypto/dpaa_sec/Makefile (+0/-7) drivers/crypto/dpaa_sec/dpaa_sec.c (+14/-2) drivers/crypto/dpaa_sec/meson.build (+0/-5) drivers/crypto/mvsam/rte_mrvl_pmd.c (+10/-2) drivers/crypto/mvsam/rte_mrvl_pmd_ops.c (+7/-7) drivers/crypto/octeontx/otx_cryptodev.c (+4/-1) drivers/crypto/qat/qat_sym.c (+7/-3) drivers/crypto/qat/qat_sym_session.c (+3/-0) drivers/event/dpaa2/dpaa2_eventdev_logs.h (+0/-2) drivers/event/octeontx2/otx2_evdev.c (+16/-18) drivers/event/octeontx2/otx2_worker.h (+1/-1) drivers/mempool/octeontx2/otx2_mempool_ops.c (+4/-2) drivers/meson.build (+1/-1) drivers/net/af_xdp/rte_eth_af_xdp.c (+5/-1) drivers/net/ark/ark_ethdev.c (+4/-0) drivers/net/ark/ark_ethdev_rx.c (+11/-38) drivers/net/ark/ark_pktdir.c (+1/-1) drivers/net/ark/ark_pktdir.h (+1/-1) drivers/net/avp/avp_ethdev.c (+3/-0) drivers/net/bnx2x/bnx2x.h (+7/-6) drivers/net/bnx2x/bnx2x_rxtx.c (+7/-6) drivers/net/bnxt/bnxt.h (+61/-1) drivers/net/bnxt/bnxt_cpr.c (+2/-0) drivers/net/bnxt/bnxt_cpr.h (+36/-8) drivers/net/bnxt/bnxt_ethdev.c (+418/-131) drivers/net/bnxt/bnxt_filter.c (+5/-0) drivers/net/bnxt/bnxt_flow.c (+114/-57) drivers/net/bnxt/bnxt_hwrm.c (+245/-108) drivers/net/bnxt/bnxt_hwrm.h (+6/-9) drivers/net/bnxt/bnxt_irq.c (+7/-4) drivers/net/bnxt/bnxt_ring.c (+14/-16) drivers/net/bnxt/bnxt_ring.h (+1/-1) drivers/net/bnxt/bnxt_rxq.c (+4/-33) drivers/net/bnxt/bnxt_rxq.h (+1/-0) drivers/net/bnxt/bnxt_rxr.c (+118/-16) drivers/net/bnxt/bnxt_rxr.h (+5/-2) drivers/net/bnxt/bnxt_rxtx_vec_sse.c (+30/-10) drivers/net/bnxt/bnxt_stats.c (+78/-17) drivers/net/bnxt/bnxt_stats.h (+1/-6) drivers/net/bnxt/bnxt_txq.c (+2/-2) drivers/net/bnxt/bnxt_txr.c (+12/-14) drivers/net/bnxt/bnxt_util.h (+2/-0) drivers/net/bnxt/bnxt_vnic.c (+4/-3) drivers/net/bnxt/bnxt_vnic.h (+1/-3) drivers/net/bnxt/hsi_struct_def_dpdk.h (+9/-2) drivers/net/bonding/eth_bond_private.h (+1/-1) drivers/net/bonding/rte_eth_bond_8023ad.c (+16/-1) drivers/net/bonding/rte_eth_bond_api.c (+17/-9) drivers/net/bonding/rte_eth_bond_args.c (+4/-4) drivers/net/bonding/rte_eth_bond_pmd.c (+18/-8) drivers/net/cxgbe/base/common.h (+9/-9) drivers/net/cxgbe/cxgbe_ethdev.c (+3/-0) drivers/net/dpaa2/dpaa2_ethdev.c (+16/-5) drivers/net/e1000/base/e1000_i210.c (+2/-0) drivers/net/e1000/em_ethdev.c (+12/-6) drivers/net/e1000/igb_ethdev.c (+17/-12) drivers/net/e1000/igb_flow.c (+1/-1) drivers/net/e1000/igb_rxtx.c (+6/-3) drivers/net/ena/base/ena_com.c (+5/-5) drivers/net/ena/base/ena_plat_dpdk.h (+6/-1) drivers/net/ena/ena_ethdev.c (+16/-4) drivers/net/ena/ena_platform.h (+0/-12) drivers/net/enetc/enetc_ethdev.c (+3/-0) drivers/net/enic/enic_ethdev.c (+3/-0) drivers/net/failsafe/failsafe_ops.c (+8/-2) drivers/net/fm10k/fm10k_ethdev.c (+2/-7) drivers/net/hinic/base/hinic_compat.h (+8/-17) drivers/net/hinic/base/hinic_pmd_nicio.c (+2/-2) drivers/net/hinic/hinic_pmd_ethdev.c (+11/-0) drivers/net/hns3/hns3_cmd.c (+9/-10) drivers/net/hns3/hns3_cmd.h (+1/-3) drivers/net/hns3/hns3_dcb.c (+46/-25) drivers/net/hns3/hns3_dcb.h (+1/-1) drivers/net/hns3/hns3_ethdev.c (+104/-100) drivers/net/hns3/hns3_ethdev.h (+2/-4) drivers/net/hns3/hns3_ethdev_vf.c (+9/-8) drivers/net/hns3/hns3_fdir.c (+5/-1) drivers/net/hns3/hns3_fdir.h (+1/-1) drivers/net/hns3/hns3_flow.c (+36/-37) drivers/net/hns3/hns3_intr.c (+3/-3) drivers/net/hns3/hns3_intr.h (+1/-1) drivers/net/hns3/hns3_logs.h (+1/-1) drivers/net/hns3/hns3_mbx.c (+13/-6) drivers/net/hns3/hns3_mbx.h (+1/-11) drivers/net/hns3/hns3_mp.c (+3/-3) drivers/net/hns3/hns3_mp.h (+1/-1) drivers/net/hns3/hns3_regs.c (+3/-6) drivers/net/hns3/hns3_regs.h (+1/-1) drivers/net/hns3/hns3_rss.c (+1/-1) drivers/net/hns3/hns3_rss.h (+1/-1) drivers/net/hns3/hns3_rxtx.c (+3/-2) drivers/net/hns3/hns3_rxtx.h (+1/-4) drivers/net/hns3/hns3_stats.c (+1/-1) drivers/net/hns3/hns3_stats.h (+1/-1) drivers/net/i40e/base/virtchnl.h (+28/-1) drivers/net/i40e/i40e_ethdev.c (+150/-61) drivers/net/i40e/i40e_ethdev.h (+6/-5) drivers/net/i40e/i40e_ethdev_vf.c (+51/-47) drivers/net/i40e/i40e_fdir.c (+1/-1) drivers/net/i40e/i40e_flow.c (+80/-11) drivers/net/i40e/i40e_pf.c (+65/-0) drivers/net/i40e/i40e_rxtx.c (+15/-7) drivers/net/i40e/i40e_rxtx_vec_neon.c (+16/-4) drivers/net/i40e/i40e_vf_representor.c (+20/-17) drivers/net/iavf/base/virtchnl.h (+28/-1) drivers/net/iavf/iavf.h (+3/-3) drivers/net/iavf/iavf_ethdev.c (+14/-11) drivers/net/iavf/iavf_rxtx.c (+7/-1) drivers/net/iavf/iavf_rxtx.h (+1/-1) drivers/net/iavf/iavf_vchnl.c (+18/-7) drivers/net/ice/base/ice_lan_tx_rx.h (+1/-1) drivers/net/ice/base/ice_osdep.h (+4/-3) drivers/net/ice/base/ice_switch.c (+2/-1) drivers/net/ice/base/meson.build (+6/-0) drivers/net/ice/ice_ethdev.c (+66/-27) drivers/net/ifc/base/ifcvf.c (+6/-1) drivers/net/ipn3ke/ipn3ke_representor.c (+3/-0) drivers/net/ixgbe/ixgbe_ethdev.c (+19/-3) drivers/net/ixgbe/ixgbe_flow.c (+1/-0) drivers/net/kni/rte_eth_kni.c (+10/-2) drivers/net/liquidio/lio_ethdev.c (+3/-0) drivers/net/memif/rte_eth_memif.c (+1/-0) drivers/net/mlx4/mlx4.c (+3/-0) drivers/net/mlx4/mlx4_flow.c (+2/-1) drivers/net/mlx4/mlx4_mp.c (+1/-1) drivers/net/mlx4/mlx4_rxtx.c (+0/-4) drivers/net/mlx4/mlx4_txq.c (+9/-10) drivers/net/mlx5/Makefile (+10/-0) drivers/net/mlx5/meson.build (+4/-0) drivers/net/mlx5/mlx5.c (+125/-55) drivers/net/mlx5/mlx5.h (+2/-3) drivers/net/mlx5/mlx5_ethdev.c (+2/-2) drivers/net/mlx5/mlx5_flow.c (+37/-12) drivers/net/mlx5/mlx5_flow.h (+1/-0) drivers/net/mlx5/mlx5_flow_dv.c (+94/-13) drivers/net/mlx5/mlx5_glue.c (+47/-10) drivers/net/mlx5/mlx5_glue.h (+15/-1) drivers/net/mlx5/mlx5_mp.c (+1/-1) drivers/net/mlx5/mlx5_mr.c (+3/-3) drivers/net/mlx5/mlx5_nl.c (+21/-1) drivers/net/mlx5/mlx5_rxq.c (+2/-8) drivers/net/mlx5/mlx5_rxtx.c (+12/-4) drivers/net/mlx5/mlx5_rxtx.h (+1/-0) drivers/net/mlx5/mlx5_rxtx_vec_altivec.h (+7/-6) drivers/net/mlx5/mlx5_rxtx_vec_neon.h (+15/-11) drivers/net/mlx5/mlx5_rxtx_vec_sse.h (+6/-5) drivers/net/mlx5/mlx5_txq.c (+1/-1) drivers/net/mvneta/mvneta_ethdev.c (+3/-0) drivers/net/mvpp2/mrvl_ethdev.c (+12/-3) drivers/net/mvpp2/mrvl_ethdev.h (+2/-0) drivers/net/mvpp2/mrvl_tm.c (+66/-1) drivers/net/netvsc/hn_ethdev.c (+2/-0) drivers/net/nfb/nfb_ethdev.c (+3/-0) drivers/net/nfp/nfp_net.c (+18/-11) drivers/net/octeontx/base/octeontx_pkivf.h (+0/-1) drivers/net/octeontx/octeontx_ethdev.c (+2/-0) drivers/net/octeontx2/otx2_ethdev.c (+41/-31) drivers/net/octeontx2/otx2_ethdev.h (+12/-1) drivers/net/octeontx2/otx2_ethdev_devargs.c (+1/-1) drivers/net/octeontx2/otx2_ethdev_ops.c (+1/-2) drivers/net/octeontx2/otx2_flow.c (+14/-2) drivers/net/octeontx2/otx2_flow.h (+0/-1) drivers/net/octeontx2/otx2_tx.c (+6/-2) drivers/net/octeontx2/otx2_tx.h (+7/-5) drivers/net/octeontx2/otx2_vlan.c (+4/-4) drivers/net/pcap/rte_eth_pcap.c (+1/-1) drivers/net/pfe/pfe_ethdev.c (+3/-5) drivers/net/qede/base/ecore_int.c (+1/-1) drivers/net/qede/qede_ethdev.c (+4/-2) drivers/net/sfc/base/efx_mcdi.c (+3/-0) drivers/net/sfc/sfc.h (+3/-2) drivers/net/sfc/sfc_ethdev.c (+66/-52) drivers/net/sfc/sfc_port.c (+32/-17) drivers/net/softnic/conn.c (+1/-0) drivers/net/softnic/rte_eth_softnic_action.c (+1/-0) drivers/net/szedata2/rte_eth_szedata2.c (+3/-0) drivers/net/tap/rte_eth_tap.c (+4/-1) drivers/net/tap/tap_flow.c (+7/-1) drivers/net/tap/tap_intr.c (+1/-1) drivers/net/thunderx/nicvf_ethdev.c (+3/-4) drivers/net/vhost/rte_eth_vhost.c (+3/-4) drivers/net/virtio/meson.build (+1/-1) drivers/net/virtio/virtio_ethdev.c (+3/-0) drivers/net/virtio/virtio_rxtx.c (+51/-19) drivers/net/virtio/virtio_rxtx_simple_altivec.c (+6/-6) drivers/net/virtio/virtio_rxtx_simple_neon.c (+6/-6) drivers/net/virtio/virtio_rxtx_simple_sse.c (+6/-6) drivers/net/virtio/virtio_user_ethdev.c (+54/-18) drivers/net/vmxnet3/vmxnet3_ethdev.c (+2/-0) drivers/raw/ntb/ntb.c (+13/-0) drivers/raw/ntb/ntb_hw_intel.c (+5/-0) drivers/raw/skeleton/skeleton_rawdev_test.c (+1/-0) examples/bbdev_app/Makefile (+1/-1) examples/bbdev_app/main.c (+4/-1) examples/bond/Makefile (+1/-1) examples/bond/main.c (+4/-0) examples/cmdline/Makefile (+1/-1) examples/cmdline/main.c (+3/-0) examples/distributor/Makefile (+1/-1) examples/distributor/main.c (+3/-0) examples/ethtool/ethtool-app/ethapp.c (+0/-1) examples/ethtool/ethtool-app/main.c (+3/-0) examples/eventdev_pipeline/Makefile (+1/-1) examples/fips_validation/Makefile (+1/-1) examples/fips_validation/main.c (+3/-0) examples/flow_classify/Makefile (+1/-1) examples/flow_classify/flow_classify.c (+4/-1) examples/flow_filtering/Makefile (+1/-1) examples/flow_filtering/main.c (+3/-0) examples/helloworld/Makefile (+1/-1) examples/helloworld/main.c (+4/-0) examples/ioat/Makefile (+1/-1) examples/ioat/ioatfwd.c (+3/-0) examples/ip_fragmentation/Makefile (+1/-1) examples/ip_fragmentation/main.c (+3/-0) examples/ip_pipeline/Makefile (+1/-1) examples/ip_pipeline/main.c (+3/-0) examples/ip_reassembly/Makefile (+1/-1) examples/ip_reassembly/main.c (+3/-0) examples/ipsec-secgw/Makefile (+1/-1) examples/ipsec-secgw/ipsec-secgw.c (+2/-0) examples/ipv4_multicast/Makefile (+1/-1) examples/ipv4_multicast/main.c (+3/-0) examples/kni/Makefile (+1/-1) examples/kni/main.c (+3/-0) examples/l2fwd-cat/Makefile (+1/-1) examples/l2fwd-cat/l2fwd-cat.c (+4/-1) examples/l2fwd-crypto/Makefile (+1/-1) examples/l2fwd-crypto/main.c (+23/-0) examples/l2fwd-event/Makefile (+1/-1) examples/l2fwd-event/main.c (+3/-0) examples/l2fwd-jobstats/Makefile (+1/-1) examples/l2fwd-jobstats/main.c (+3/-0) examples/l2fwd-keepalive/Makefile (+1/-1) examples/l2fwd-keepalive/main.c (+4/-0) examples/l2fwd/Makefile (+1/-1) examples/l2fwd/main.c (+3/-0) examples/l3fwd-acl/Makefile (+1/-1) examples/l3fwd-acl/main.c (+3/-0) examples/l3fwd-power/Makefile (+1/-1) examples/l3fwd-power/main.c (+2/-2) examples/l3fwd/Makefile (+1/-1) examples/l3fwd/l3fwd_lpm.c (+16/-10) examples/l3fwd/main.c (+4/-0) examples/link_status_interrupt/Makefile (+1/-1) examples/link_status_interrupt/main.c (+3/-0) examples/meson.build (+10/-6) examples/multi_process/client_server_mp/mp_client/client.c (+3/-0) examples/multi_process/client_server_mp/mp_server/main.c (+4/-0) examples/multi_process/simple_mp/main.c (+4/-0) examples/multi_process/symmetric_mp/main.c (+3/-0) examples/ntb/Makefile (+1/-1) examples/ntb/ntb_fwd.c (+3/-0) examples/packet_ordering/Makefile (+1/-1) examples/packet_ordering/main.c (+5/-1) examples/performance-thread/l3fwd-thread/main.c (+3/-0) examples/performance-thread/pthread_shim/main.c (+4/-0) examples/ptpclient/Makefile (+1/-1) examples/ptpclient/ptpclient.c (+3/-4) examples/qos_meter/Makefile (+1/-1) examples/qos_meter/main.c (+3/-0) examples/qos_sched/Makefile (+1/-1) examples/qos_sched/main.c (+3/-0) examples/rxtx_callbacks/Makefile (+1/-1) examples/rxtx_callbacks/main.c (+5/-1) examples/server_node_efd/node/node.c (+3/-0) examples/server_node_efd/server/main.c (+4/-0) examples/service_cores/Makefile (+1/-1) examples/service_cores/main.c (+3/-0) examples/skeleton/Makefile (+1/-1) examples/skeleton/basicfwd.c (+4/-1) examples/tep_termination/Makefile (+1/-1) examples/timer/Makefile (+1/-1) examples/timer/main.c (+13/-10) examples/vdpa/Makefile (+1/-1) examples/vdpa/main.c (+3/-0) examples/vhost/Makefile (+1/-1) examples/vhost/main.c (+3/-1) examples/vhost/virtio_net.c (+7/-1) examples/vhost_blk/Makefile (+1/-1) examples/vhost_blk/vhost_blk.c (+3/-0) examples/vhost_crypto/Makefile (+1/-1) examples/vhost_crypto/main.c (+4/-1) examples/vm_power_manager/guest_cli/main.c (+3/-0) examples/vm_power_manager/main.c (+3/-0) examples/vmdq/Makefile (+1/-1) examples/vmdq/main.c (+3/-0) examples/vmdq_dcb/Makefile (+1/-1) examples/vmdq_dcb/main.c (+3/-0) kernel/linux/kni/kni_net.c (+3/-3) lib/librte_bpf/bpf_validate.c (+1/-1) lib/librte_cryptodev/rte_cryptodev_pmd.c (+2/-1) lib/librte_distributor/rte_distributor.c (+1/-1) lib/librte_eal/common/arch/arm/rte_cpuflags.c (+1/-1) lib/librte_eal/common/eal_common_fbarray.c (+3/-4) lib/librte_eal/common/eal_common_options.c (+4/-2) lib/librte_eal/common/eal_common_proc.c (+27/-22) lib/librte_eal/common/eal_common_thread.c (+38/-28) lib/librte_eal/common/include/rte_bitmap.h (+1/-2) lib/librte_eal/common/include/rte_reciprocal.h (+8/-0) lib/librte_eal/common/include/rte_service.h (+1/-4) lib/librte_eal/common/include/rte_vfio.h (+5/-3) lib/librte_eal/common/malloc_mp.c (+1/-3) lib/librte_eal/freebsd/eal/include/rte_os.h (+2/-3) lib/librte_eal/linux/eal/eal_log.c (+3/-3) lib/librte_eal/linux/eal/eal_memalloc.c (+2/-12) lib/librte_eal/linux/eal/eal_vfio.c (+41/-57) lib/librte_eal/linux/eal/eal_vfio.h (+1/-0) lib/librte_eal/linux/eal/include/rte_os.h (+2/-3) lib/librte_eal/rte_eal_exports.def (+1/-0) lib/librte_eal/rte_eal_version.map (+0/-1) lib/librte_eal/windows/eal/eal.c (+6/-0) lib/librte_eal/windows/eal/eal_thread.c (+2/-2) lib/librte_ethdev/rte_ethdev.c (+13/-1) lib/librte_ethdev/rte_ethdev.h (+5/-0) lib/librte_ethdev/rte_flow.c (+2/-20) lib/librte_ethdev/rte_flow.h (+3/-3) lib/librte_ethdev/rte_flow_driver.h (+2/-0) lib/librte_eventdev/rte_event_crypto_adapter.c (+1/-0) lib/librte_eventdev/rte_event_eth_rx_adapter.c (+2/-3) lib/librte_eventdev/rte_event_eth_tx_adapter.c (+0/-1) lib/librte_flow_classify/rte_flow_classify.c (+2/-2) lib/librte_kni/rte_kni.c (+3/-2) lib/librte_mbuf/rte_mbuf_dyn.c (+8/-2) lib/librte_net/rte_ip.h (+1/-1) lib/librte_power/guest_channel.c (+11/-11) lib/librte_power/power_acpi_cpufreq.c (+20/-19) lib/librte_power/power_pstate_cpufreq.c (+3/-2) lib/librte_power/rte_power_guest_channel.h (+0/-8) lib/librte_power/rte_power_version.map (+0/-2) lib/librte_rib/rte_rib6.c (+21/-8) lib/librte_stack/rte_stack.c (+3/-1) lib/librte_stack/rte_stack.h (+2/-1) lib/librte_stack/rte_stack_lf.h (+5/-0) lib/librte_telemetry/rte_telemetry.c (+1/-1) lib/librte_vhost/vhost.c (+1/-1) lib/librte_vhost/vhost_crypto.c (+4/-2) lib/librte_vhost/vhost_user.c (+41/-10) lib/librte_vhost/virtio_net.c (+14/-9) lib/meson.build (+1/-1) license/README (+2/-2) meson.build (+29/-3) |
||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Bryce Harrington (community) | Approve | ||
Canonical Server packageset reviewers | Pending | ||
Canonical Server | Pending | ||
Review via email:
|
Commit message
Description of the change
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Christian Ehrhardt (paelzer) wrote : | # |
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Christian Ehrhardt (paelzer) wrote : | # |
FYI this follows Debians model of importing the upstream not as a single commit, but as
To ease comparison I recommend from <email address hidden>
With that you can easily see that it matches the upstream release and other than that doesn't change too much.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Bryce Harrington (bryce) wrote : | # |
* Changelog:
- [√] old content and logical tag match as expected
- [√] changelog entry correct version and targeted codename
- [√] changelog entries correct
- [√] update-maintainer has been run
* Actual changes:
- [-] no upstream changes to consider
- [-] no further upstream version to consider
- [√] debian changes look safe
* Old Delta:
- [√] dropped changes are ok to be dropped
- [√] nothing else to drop
- [√] changes forwarded upstream/debian (if appropriate)
* New Delta:
- [-] no new patches added
- [√] patches match what was proposed upstream
- [√] patches correctly included in debian/
- [√] patches have correct DEP3 metadata
* Build/Test:
- [√] build is ok
- [-] verified PPA package installs/uninstalls
- [-] autopkgtest against the PPA package passes
- [-] sanity checks test fine
LGTM, +1
I didn't do the local installation/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Christian Ehrhardt (paelzer) wrote : | # |
Thank you, uploaded
Uploading to ubuntu (via ftp to upload.ubuntu.com):
Uploading dpdk_19.
Uploading dpdk_19.
Uploading dpdk_19.
Uploading dpdk_19.
Uploading dpdk_19.
Successfully uploaded packages.
Preview Diff
1 | diff --git a/MAINTAINERS b/MAINTAINERS |
2 | index 952ded7..75431e3 100644 |
3 | --- a/MAINTAINERS |
4 | +++ b/MAINTAINERS |
5 | @@ -131,8 +131,6 @@ F: config/rte_config.h |
6 | F: buildtools/call-sphinx-build.py |
7 | F: buildtools/gen-pmdinfo-cfile.sh |
8 | F: buildtools/map_to_def.py |
9 | -F: buildtools/list-dir-globs.py |
10 | -F: buildtools/pkg-config/ |
11 | F: buildtools/symlink-drivers-solibs.sh |
12 | |
13 | Public CI |
14 | diff --git a/VERSION b/VERSION |
15 | index 8bda737..67d8753 100644 |
16 | --- a/VERSION |
17 | +++ b/VERSION |
18 | @@ -1 +1 @@ |
19 | -19.11.7 |
20 | +19.11.10 |
21 | diff --git a/app/meson.build b/app/meson.build |
22 | index c7f689e..4bdfaf4 100644 |
23 | --- a/app/meson.build |
24 | +++ b/app/meson.build |
25 | @@ -18,8 +18,6 @@ apps = [ |
26 | 'test-pmd', |
27 | 'test-sad'] |
28 | |
29 | -# for BSD only |
30 | -lib_execinfo = cc.find_library('execinfo', required: false) |
31 | |
32 | default_cflags = machine_args |
33 | default_ldflags = [] |
34 | @@ -51,7 +49,6 @@ foreach app:apps |
35 | dep_objs += get_variable(get_option('default_library') |
36 | + '_rte_' + d) |
37 | endforeach |
38 | - dep_objs += lib_execinfo |
39 | |
40 | link_libs = [] |
41 | if get_option('default_library') == 'static' |
42 | diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c |
43 | index d8db58e..d6da21c 100644 |
44 | --- a/app/test-bbdev/test_bbdev_perf.c |
45 | +++ b/app/test-bbdev/test_bbdev_perf.c |
46 | @@ -327,14 +327,14 @@ check_dev_cap(const struct rte_bbdev_info *dev_info) |
47 | if (nb_harq_inputs > cap->num_buffers_hard_out) { |
48 | printf( |
49 | "Too many HARQ inputs defined: %u, max: %u\n", |
50 | - nb_hard_outputs, |
51 | + nb_harq_inputs, |
52 | cap->num_buffers_hard_out); |
53 | return TEST_FAILED; |
54 | } |
55 | if (nb_harq_outputs > cap->num_buffers_hard_out) { |
56 | printf( |
57 | "Too many HARQ outputs defined: %u, max: %u\n", |
58 | - nb_hard_outputs, |
59 | + nb_harq_outputs, |
60 | cap->num_buffers_hard_out); |
61 | return TEST_FAILED; |
62 | } |
63 | diff --git a/app/test-compress-perf/comp_perf_options_parse.c b/app/test-compress-perf/comp_perf_options_parse.c |
64 | index 12d0a6c..898dd31 100644 |
65 | --- a/app/test-compress-perf/comp_perf_options_parse.c |
66 | +++ b/app/test-compress-perf/comp_perf_options_parse.c |
67 | @@ -598,7 +598,7 @@ comp_perf_options_parse(struct comp_test_data *test_data, int argc, char **argv) |
68 | switch (opt) { |
69 | case 'h': |
70 | usage(argv[0]); |
71 | - rte_exit(EXIT_SUCCESS, "Displayed help\n"); |
72 | + exit(EXIT_SUCCESS); |
73 | break; |
74 | /* long options */ |
75 | case 0: |
76 | diff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c |
77 | index 49b4697..e16e8ec 100644 |
78 | --- a/app/test-crypto-perf/cperf_options_parsing.c |
79 | +++ b/app/test-crypto-perf/cperf_options_parsing.c |
80 | @@ -495,6 +495,12 @@ parse_test_name(struct cperf_options *opts, |
81 | { |
82 | char *test_name = (char *) rte_zmalloc(NULL, |
83 | sizeof(char) * (strlen(arg) + 3), 0); |
84 | + if (test_name == NULL) { |
85 | + RTE_LOG(ERR, USER1, "Failed to rte zmalloc with size: %zu\n", |
86 | + strlen(arg) + 3); |
87 | + return -1; |
88 | + } |
89 | + |
90 | snprintf(test_name, strlen(arg) + 3, "[%s]", arg); |
91 | opts->test_name = test_name; |
92 | |
93 | @@ -953,7 +959,7 @@ cperf_options_parse(struct cperf_options *options, int argc, char **argv) |
94 | switch (opt) { |
95 | case 'h': |
96 | usage(argv[0]); |
97 | - rte_exit(EXIT_SUCCESS, "Displayed help\n"); |
98 | + exit(EXIT_SUCCESS); |
99 | break; |
100 | /* long options */ |
101 | case 0: |
102 | diff --git a/app/test-crypto-perf/cperf_test_common.c b/app/test-crypto-perf/cperf_test_common.c |
103 | index 85603ee..b7347ad 100644 |
104 | --- a/app/test-crypto-perf/cperf_test_common.c |
105 | +++ b/app/test-crypto-perf/cperf_test_common.c |
106 | @@ -194,7 +194,7 @@ cperf_alloc_common_memory(const struct cperf_options *options, |
107 | (mbuf_size * segments_nb); |
108 | params.dst_buf_offset = *dst_buf_offset; |
109 | /* Destination buffer will be one segment only */ |
110 | - obj_size += max_size; |
111 | + obj_size += max_size + sizeof(struct rte_mbuf); |
112 | } |
113 | |
114 | *pool = rte_mempool_create_empty(pool_name, |
115 | diff --git a/app/test-eventdev/evt_options.c b/app/test-eventdev/evt_options.c |
116 | index 4f4800d..3c80c1a 100644 |
117 | --- a/app/test-eventdev/evt_options.c |
118 | +++ b/app/test-eventdev/evt_options.c |
119 | @@ -218,7 +218,7 @@ evt_parse_plcores(struct evt_options *opt, const char *corelist) |
120 | { |
121 | int ret; |
122 | |
123 | - ret = parse_lcores_list(opt->plcores, corelist); |
124 | + ret = parse_lcores_list(opt->plcores, RTE_MAX_LCORE, corelist); |
125 | if (ret == -E2BIG) |
126 | evt_err("duplicate lcores in plcores"); |
127 | |
128 | @@ -230,7 +230,7 @@ evt_parse_work_lcores(struct evt_options *opt, const char *corelist) |
129 | { |
130 | int ret; |
131 | |
132 | - ret = parse_lcores_list(opt->wlcores, corelist); |
133 | + ret = parse_lcores_list(opt->wlcores, RTE_MAX_LCORE, corelist); |
134 | if (ret == -E2BIG) |
135 | evt_err("duplicate lcores in wlcores"); |
136 | |
137 | diff --git a/app/test-eventdev/parser.c b/app/test-eventdev/parser.c |
138 | index 24f1855..8818c37 100644 |
139 | --- a/app/test-eventdev/parser.c |
140 | +++ b/app/test-eventdev/parser.c |
141 | @@ -310,7 +310,7 @@ parse_hex_string(char *src, uint8_t *dst, uint32_t *size) |
142 | } |
143 | |
144 | int |
145 | -parse_lcores_list(bool lcores[], const char *corelist) |
146 | +parse_lcores_list(bool lcores[], int lcores_num, const char *corelist) |
147 | { |
148 | int i, idx = 0; |
149 | int min, max; |
150 | @@ -332,6 +332,8 @@ parse_lcores_list(bool lcores[], const char *corelist) |
151 | if (*corelist == '\0') |
152 | return -1; |
153 | idx = strtoul(corelist, &end, 10); |
154 | + if (idx < 0 || idx > lcores_num) |
155 | + return -1; |
156 | |
157 | if (end == NULL) |
158 | return -1; |
159 | diff --git a/app/test-eventdev/parser.h b/app/test-eventdev/parser.h |
160 | index 673ff22..696b40a 100644 |
161 | --- a/app/test-eventdev/parser.h |
162 | +++ b/app/test-eventdev/parser.h |
163 | @@ -46,5 +46,5 @@ int parse_hex_string(char *src, uint8_t *dst, uint32_t *size); |
164 | |
165 | int parse_tokenize_string(char *string, char *tokens[], uint32_t *n_tokens); |
166 | |
167 | -int parse_lcores_list(bool lcores[], const char *corelist); |
168 | +int parse_lcores_list(bool lcores[], int lcores_num, const char *corelist); |
169 | #endif |
170 | diff --git a/app/test-pmd/bpf_cmd.c b/app/test-pmd/bpf_cmd.c |
171 | index d2deadd..3899d9f 100644 |
172 | --- a/app/test-pmd/bpf_cmd.c |
173 | +++ b/app/test-pmd/bpf_cmd.c |
174 | @@ -20,7 +20,7 @@ static const struct rte_bpf_xsym bpf_xsym[] = { |
175 | .name = RTE_STR(stdout), |
176 | .type = RTE_BPF_XTYPE_VAR, |
177 | .var = { |
178 | - .val = &stdout, |
179 | + .val = (void *)(uintptr_t)&stdout, |
180 | .desc = { |
181 | .type = RTE_BPF_ARG_PTR, |
182 | .size = sizeof(stdout), |
183 | diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c |
184 | index 9a9da74..e6c053a 100644 |
185 | --- a/app/test-pmd/cmdline.c |
186 | +++ b/app/test-pmd/cmdline.c |
187 | @@ -1324,7 +1324,7 @@ cmdline_parse_token_string_t cmd_operate_port_all_all = |
188 | cmdline_parse_inst_t cmd_operate_port = { |
189 | .f = cmd_operate_port_parsed, |
190 | .data = NULL, |
191 | - .help_str = "port start|stop|close all: Start/Stop/Close/Reset all ports", |
192 | + .help_str = "port start|stop|close|reset all: Start/Stop/Close/Reset all ports", |
193 | .tokens = { |
194 | (void *)&cmd_operate_port_all_cmd, |
195 | (void *)&cmd_operate_port_all_port, |
196 | @@ -1371,7 +1371,7 @@ cmdline_parse_token_num_t cmd_operate_specific_port_id = |
197 | cmdline_parse_inst_t cmd_operate_specific_port = { |
198 | .f = cmd_operate_specific_port_parsed, |
199 | .data = NULL, |
200 | - .help_str = "port start|stop|close <port_id>: Start/Stop/Close/Reset port_id", |
201 | + .help_str = "port start|stop|close|reset <port_id>: Start/Stop/Close/Reset port_id", |
202 | .tokens = { |
203 | (void *)&cmd_operate_specific_port_cmd, |
204 | (void *)&cmd_operate_specific_port_port, |
205 | @@ -1618,6 +1618,9 @@ parse_and_check_speed_duplex(char *speedstr, char *duplexstr, uint32_t *speed) |
206 | } |
207 | } |
208 | |
209 | + if (*speed != ETH_LINK_SPEED_AUTONEG) |
210 | + *speed |= ETH_LINK_SPEED_FIXED; |
211 | + |
212 | return 0; |
213 | } |
214 | |
215 | @@ -1701,13 +1704,13 @@ cmd_config_speed_specific_parsed(void *parsed_result, |
216 | struct cmd_config_speed_specific *res = parsed_result; |
217 | uint32_t link_speed; |
218 | |
219 | - if (!all_ports_stopped()) { |
220 | - printf("Please stop all ports first\n"); |
221 | + if (port_id_is_invalid(res->id, ENABLED_WARN)) |
222 | return; |
223 | - } |
224 | |
225 | - if (port_id_is_invalid(res->id, ENABLED_WARN)) |
226 | + if (!port_is_stopped(res->id)) { |
227 | + printf("Please stop port %d first\n", res->id); |
228 | return; |
229 | + } |
230 | |
231 | if (parse_and_check_speed_duplex(res->value1, res->value2, |
232 | &link_speed) < 0) |
233 | @@ -2846,6 +2849,10 @@ cmd_setup_rxtx_queue_parsed( |
234 | if (!numa_support || socket_id == NUMA_NO_CONFIG) |
235 | socket_id = port->socket_id; |
236 | |
237 | + if (port->nb_tx_desc[res->qid] < tx_pkt_nb_segs) { |
238 | + printf("Failed to setup TX queue: not enough descriptors\n"); |
239 | + return; |
240 | + } |
241 | ret = rte_eth_tx_queue_setup(res->portid, |
242 | res->qid, |
243 | port->nb_tx_desc[res->qid], |
244 | @@ -4461,7 +4468,7 @@ cmd_config_queue_tx_offloads(struct rte_port *port) |
245 | int k; |
246 | |
247 | /* Apply queue tx offloads configuration */ |
248 | - for (k = 0; k < port->dev_info.max_rx_queues; k++) |
249 | + for (k = 0; k < port->dev_info.max_tx_queues; k++) |
250 | port->tx_conf[k].offloads = |
251 | port->dev_conf.txmode.offloads; |
252 | } |
253 | @@ -9100,7 +9107,7 @@ cmdline_parse_inst_t cmd_tunnel_filter = { |
254 | |
255 | /* *** CONFIGURE TUNNEL UDP PORT *** */ |
256 | struct cmd_tunnel_udp_config { |
257 | - cmdline_fixed_string_t cmd; |
258 | + cmdline_fixed_string_t rx_vxlan_port; |
259 | cmdline_fixed_string_t what; |
260 | uint16_t udp_port; |
261 | portid_t port_id; |
262 | @@ -9116,9 +9123,7 @@ cmd_tunnel_udp_config_parsed(void *parsed_result, |
263 | int ret; |
264 | |
265 | tunnel_udp.udp_port = res->udp_port; |
266 | - |
267 | - if (!strcmp(res->cmd, "rx_vxlan_port")) |
268 | - tunnel_udp.prot_type = RTE_TUNNEL_TYPE_VXLAN; |
269 | + tunnel_udp.prot_type = RTE_TUNNEL_TYPE_VXLAN; |
270 | |
271 | if (!strcmp(res->what, "add")) |
272 | ret = rte_eth_dev_udp_tunnel_port_add(res->port_id, |
273 | @@ -9131,9 +9136,9 @@ cmd_tunnel_udp_config_parsed(void *parsed_result, |
274 | printf("udp tunneling add error: (%s)\n", strerror(-ret)); |
275 | } |
276 | |
277 | -cmdline_parse_token_string_t cmd_tunnel_udp_config_cmd = |
278 | +cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port = |
279 | TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config, |
280 | - cmd, "rx_vxlan_port"); |
281 | + rx_vxlan_port, "rx_vxlan_port"); |
282 | cmdline_parse_token_string_t cmd_tunnel_udp_config_what = |
283 | TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config, |
284 | what, "add#rm"); |
285 | @@ -9150,7 +9155,7 @@ cmdline_parse_inst_t cmd_tunnel_udp_config = { |
286 | .help_str = "rx_vxlan_port add|rm <udp_port> <port_id>: " |
287 | "Add/Remove a tunneling UDP port filter", |
288 | .tokens = { |
289 | - (void *)&cmd_tunnel_udp_config_cmd, |
290 | + (void *)&cmd_tunnel_udp_config_rx_vxlan_port, |
291 | (void *)&cmd_tunnel_udp_config_what, |
292 | (void *)&cmd_tunnel_udp_config_udp_port, |
293 | (void *)&cmd_tunnel_udp_config_port_id, |
294 | @@ -19038,7 +19043,8 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result, |
295 | rc = rte_eth_rx_descriptor_status(res->cmd_pid, res->cmd_qid, |
296 | res->cmd_did); |
297 | if (rc < 0) { |
298 | - printf("Invalid queueid = %d\n", res->cmd_qid); |
299 | + printf("Invalid input: queue id = %d, desc id = %d\n", |
300 | + res->cmd_qid, res->cmd_did); |
301 | return; |
302 | } |
303 | if (rc == RTE_ETH_RX_DESC_AVAIL) |
304 | @@ -19051,7 +19057,8 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result, |
305 | rc = rte_eth_tx_descriptor_status(res->cmd_pid, res->cmd_qid, |
306 | res->cmd_did); |
307 | if (rc < 0) { |
308 | - printf("Invalid queueid = %d\n", res->cmd_qid); |
309 | + printf("Invalid input: queue id = %d, desc id = %d\n", |
310 | + res->cmd_qid, res->cmd_did); |
311 | return; |
312 | } |
313 | if (rc == RTE_ETH_TX_DESC_FULL) |
314 | diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c |
315 | index da3533c..0b76f7e 100644 |
316 | --- a/app/test-pmd/cmdline_flow.c |
317 | +++ b/app/test-pmd/cmdline_flow.c |
318 | @@ -4250,7 +4250,11 @@ parse_vc_action_nvgre_encap(struct context *ctx, const struct token *token, |
319 | .src_addr = nvgre_encap_conf.ipv4_src, |
320 | .dst_addr = nvgre_encap_conf.ipv4_dst, |
321 | }, |
322 | - .item_nvgre.flow_id = 0, |
323 | + .item_nvgre = { |
324 | + .c_k_s_rsvd0_ver = RTE_BE16(0x2000), |
325 | + .protocol = RTE_BE16(RTE_ETHER_TYPE_TEB), |
326 | + .flow_id = 0, |
327 | + }, |
328 | }; |
329 | memcpy(action_nvgre_encap_data->item_eth.dst.addr_bytes, |
330 | nvgre_encap_conf.eth_dst, RTE_ETHER_ADDR_LEN); |
331 | diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c |
332 | index e14ff42..bee9fa6 100644 |
333 | --- a/app/test-pmd/config.c |
334 | +++ b/app/test-pmd/config.c |
335 | @@ -2138,7 +2138,7 @@ port_rss_hash_conf_show(portid_t port_id, int show_rss_key) |
336 | |
337 | void |
338 | port_rss_hash_key_update(portid_t port_id, char rss_type[], uint8_t *hash_key, |
339 | - uint hash_key_len) |
340 | + uint8_t hash_key_len) |
341 | { |
342 | struct rte_eth_rss_conf rss_conf; |
343 | int diag; |
344 | @@ -2328,6 +2328,21 @@ rss_fwd_config_setup(void) |
345 | } |
346 | } |
347 | |
348 | +static uint16_t |
349 | +get_fwd_port_total_tc_num(void) |
350 | +{ |
351 | + struct rte_eth_dcb_info dcb_info; |
352 | + uint16_t total_tc_num = 0; |
353 | + unsigned int i; |
354 | + |
355 | + for (i = 0; i < nb_fwd_ports; i++) { |
356 | + (void)rte_eth_dev_get_dcb_info(fwd_ports_ids[i], &dcb_info); |
357 | + total_tc_num += dcb_info.nb_tcs; |
358 | + } |
359 | + |
360 | + return total_tc_num; |
361 | +} |
362 | + |
363 | /** |
364 | * For the DCB forwarding test, each core is assigned on each traffic class. |
365 | * |
366 | @@ -2347,12 +2362,42 @@ dcb_fwd_config_setup(void) |
367 | lcoreid_t lc_id; |
368 | uint16_t nb_rx_queue, nb_tx_queue; |
369 | uint16_t i, j, k, sm_id = 0; |
370 | + uint16_t total_tc_num; |
371 | + struct rte_port *port; |
372 | uint8_t tc = 0; |
373 | + portid_t pid; |
374 | + int ret; |
375 | + |
376 | + /* |
377 | + * The fwd_config_setup() is called when the port is RTE_PORT_STARTED |
378 | + * or RTE_PORT_STOPPED. |
379 | + * |
380 | + * Re-configure ports to get updated mapping between tc and queue in |
381 | + * case the queue number of the port is changed. Skip for started ports |
382 | + * since modifying queue number and calling dev_configure need to stop |
383 | + * ports first. |
384 | + */ |
385 | + for (pid = 0; pid < nb_fwd_ports; pid++) { |
386 | + if (port_is_started(pid) == 1) |
387 | + continue; |
388 | + |
389 | + port = &ports[pid]; |
390 | + ret = rte_eth_dev_configure(pid, nb_rxq, nb_txq, |
391 | + &port->dev_conf); |
392 | + if (ret < 0) { |
393 | + printf("Failed to re-configure port %d, ret = %d.\n", |
394 | + pid, ret); |
395 | + return; |
396 | + } |
397 | + } |
398 | |
399 | cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores; |
400 | cur_fwd_config.nb_fwd_ports = nb_fwd_ports; |
401 | cur_fwd_config.nb_fwd_streams = |
402 | (streamid_t) (nb_rxq * cur_fwd_config.nb_fwd_ports); |
403 | + total_tc_num = get_fwd_port_total_tc_num(); |
404 | + if (cur_fwd_config.nb_fwd_lcores > total_tc_num) |
405 | + cur_fwd_config.nb_fwd_lcores = total_tc_num; |
406 | |
407 | /* reinitialize forwarding streams */ |
408 | init_fwd_streams(); |
409 | @@ -2843,13 +2888,15 @@ nb_segs_is_invalid(unsigned int nb_segs) |
410 | RTE_ETH_FOREACH_DEV(port_id) { |
411 | for (queue_id = 0; queue_id < nb_txq; queue_id++) { |
412 | ret = get_tx_ring_size(port_id, queue_id, &ring_size); |
413 | - |
414 | - if (ret) |
415 | - return true; |
416 | - |
417 | + if (ret) { |
418 | + /* Port may not be initialized yet, can't say |
419 | + * the port is invalid in this stage. |
420 | + */ |
421 | + continue; |
422 | + } |
423 | if (ring_size < nb_segs) { |
424 | - printf("nb segments per TX packets=%u >= " |
425 | - "TX queue(%u) ring_size=%u - ignored\n", |
426 | + printf("nb segments per TX packets=%u >= TX " |
427 | + "queue(%u) ring_size=%u - txpkts ignored\n", |
428 | nb_segs, queue_id, ring_size); |
429 | return true; |
430 | } |
431 | @@ -2865,12 +2912,26 @@ set_tx_pkt_segments(unsigned *seg_lengths, unsigned nb_segs) |
432 | uint16_t tx_pkt_len; |
433 | unsigned i; |
434 | |
435 | - if (nb_segs_is_invalid(nb_segs)) |
436 | + /* |
437 | + * For single segment settings failed check is ignored. |
438 | + * It is a very basic capability to send the single segment |
439 | + * packets, suppose it is always supported. |
440 | + */ |
441 | + if (nb_segs > 1 && nb_segs_is_invalid(nb_segs)) { |
442 | + printf("Tx segment size(%u) is not supported - txpkts ignored\n", |
443 | + nb_segs); |
444 | return; |
445 | + } |
446 | + |
447 | + if (nb_segs > RTE_MAX_SEGS_PER_PKT) { |
448 | + printf("Tx segment size(%u) is bigger than max number of segment(%u)\n", |
449 | + nb_segs, RTE_MAX_SEGS_PER_PKT); |
450 | + return; |
451 | + } |
452 | |
453 | /* |
454 | * Check that each segment length is greater or equal than |
455 | - * the mbuf data sise. |
456 | + * the mbuf data size. |
457 | * Check also that the total packet length is greater or equal than the |
458 | * size of an empty UDP/IP packet (sizeof(struct rte_ether_hdr) + |
459 | * 20 + 8). |
460 | diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c |
461 | index 7b92ab1..29044c4 100644 |
462 | --- a/app/test-pmd/csumonly.c |
463 | +++ b/app/test-pmd/csumonly.c |
464 | @@ -451,17 +451,18 @@ process_inner_cksums(void *l3_hdr, const struct testpmd_offload_info *info, |
465 | |
466 | if (info->ethertype == _htons(RTE_ETHER_TYPE_IPV4)) { |
467 | ipv4_hdr = l3_hdr; |
468 | - ipv4_hdr->hdr_checksum = 0; |
469 | |
470 | ol_flags |= PKT_TX_IPV4; |
471 | if (info->l4_proto == IPPROTO_TCP && tso_segsz) { |
472 | ol_flags |= PKT_TX_IP_CKSUM; |
473 | } else { |
474 | - if (tx_offloads & DEV_TX_OFFLOAD_IPV4_CKSUM) |
475 | + if (tx_offloads & DEV_TX_OFFLOAD_IPV4_CKSUM) { |
476 | ol_flags |= PKT_TX_IP_CKSUM; |
477 | - else |
478 | + } else { |
479 | + ipv4_hdr->hdr_checksum = 0; |
480 | ipv4_hdr->hdr_checksum = |
481 | rte_ipv4_cksum(ipv4_hdr); |
482 | + } |
483 | } |
484 | } else if (info->ethertype == _htons(RTE_ETHER_TYPE_IPV6)) |
485 | ol_flags |= PKT_TX_IPV6; |
486 | @@ -472,10 +473,10 @@ process_inner_cksums(void *l3_hdr, const struct testpmd_offload_info *info, |
487 | udp_hdr = (struct rte_udp_hdr *)((char *)l3_hdr + info->l3_len); |
488 | /* do not recalculate udp cksum if it was 0 */ |
489 | if (udp_hdr->dgram_cksum != 0) { |
490 | - udp_hdr->dgram_cksum = 0; |
491 | - if (tx_offloads & DEV_TX_OFFLOAD_UDP_CKSUM) |
492 | + if (tx_offloads & DEV_TX_OFFLOAD_UDP_CKSUM) { |
493 | ol_flags |= PKT_TX_UDP_CKSUM; |
494 | - else { |
495 | + } else { |
496 | + udp_hdr->dgram_cksum = 0; |
497 | udp_hdr->dgram_cksum = |
498 | get_udptcp_checksum(l3_hdr, udp_hdr, |
499 | info->ethertype); |
500 | @@ -485,12 +486,12 @@ process_inner_cksums(void *l3_hdr, const struct testpmd_offload_info *info, |
501 | ol_flags |= PKT_TX_UDP_SEG; |
502 | } else if (info->l4_proto == IPPROTO_TCP) { |
503 | tcp_hdr = (struct rte_tcp_hdr *)((char *)l3_hdr + info->l3_len); |
504 | - tcp_hdr->cksum = 0; |
505 | if (tso_segsz) |
506 | ol_flags |= PKT_TX_TCP_SEG; |
507 | - else if (tx_offloads & DEV_TX_OFFLOAD_TCP_CKSUM) |
508 | + else if (tx_offloads & DEV_TX_OFFLOAD_TCP_CKSUM) { |
509 | ol_flags |= PKT_TX_TCP_CKSUM; |
510 | - else { |
511 | + } else { |
512 | + tcp_hdr->cksum = 0; |
513 | tcp_hdr->cksum = |
514 | get_udptcp_checksum(l3_hdr, tcp_hdr, |
515 | info->ethertype); |
516 | @@ -500,13 +501,13 @@ process_inner_cksums(void *l3_hdr, const struct testpmd_offload_info *info, |
517 | } else if (info->l4_proto == IPPROTO_SCTP) { |
518 | sctp_hdr = (struct rte_sctp_hdr *) |
519 | ((char *)l3_hdr + info->l3_len); |
520 | - sctp_hdr->cksum = 0; |
521 | /* sctp payload must be a multiple of 4 to be |
522 | * offloaded */ |
523 | if ((tx_offloads & DEV_TX_OFFLOAD_SCTP_CKSUM) && |
524 | ((ipv4_hdr->total_length & 0x3) == 0)) { |
525 | ol_flags |= PKT_TX_SCTP_CKSUM; |
526 | } else { |
527 | + sctp_hdr->cksum = 0; |
528 | /* XXX implement CRC32c, example available in |
529 | * RFC3309 */ |
530 | } |
531 | diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c |
532 | index a1c08a4..9ce3b4f 100644 |
533 | --- a/app/test-pmd/parameters.c |
534 | +++ b/app/test-pmd/parameters.c |
535 | @@ -694,7 +694,7 @@ launch_args_parse(int argc, char** argv) |
536 | case 0: /*long options */ |
537 | if (!strcmp(lgopts[opt_idx].name, "help")) { |
538 | usage(argv[0]); |
539 | - rte_exit(EXIT_SUCCESS, "Displayed help\n"); |
540 | + exit(EXIT_SUCCESS); |
541 | } |
542 | #ifdef RTE_LIBRTE_CMDLINE |
543 | if (!strcmp(lgopts[opt_idx].name, "interactive")) { |
544 | @@ -1356,7 +1356,7 @@ launch_args_parse(int argc, char** argv) |
545 | break; |
546 | case 'h': |
547 | usage(argv[0]); |
548 | - rte_exit(EXIT_SUCCESS, "Displayed help\n"); |
549 | + exit(EXIT_SUCCESS); |
550 | break; |
551 | default: |
552 | usage(argv[0]); |
553 | diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c |
554 | index 0c3361e..dca10e7 100644 |
555 | --- a/app/test-pmd/testpmd.c |
556 | +++ b/app/test-pmd/testpmd.c |
557 | @@ -228,9 +228,6 @@ uint16_t mb_mempool_cache = DEF_MBUF_CACHE; /**< Size of mbuf mempool cache. */ |
558 | /* current configuration is in DCB or not,0 means it is not in DCB mode */ |
559 | uint8_t dcb_config = 0; |
560 | |
561 | -/* Whether the dcb is in testing status */ |
562 | -uint8_t dcb_test = 0; |
563 | - |
564 | /* |
565 | * Configurable number of RX/TX queues. |
566 | */ |
567 | @@ -1293,22 +1290,68 @@ check_nb_hairpinq(queueid_t hairpinq) |
568 | } |
569 | |
570 | static void |
571 | +init_config_port_offloads(portid_t pid, uint32_t socket_id) |
572 | +{ |
573 | + struct rte_port *port = &ports[pid]; |
574 | + uint16_t data_size; |
575 | + int ret; |
576 | + int i; |
577 | + |
578 | + port->dev_conf.txmode = tx_mode; |
579 | + port->dev_conf.rxmode = rx_mode; |
580 | + |
581 | + ret = eth_dev_info_get_print_err(pid, &port->dev_info); |
582 | + if (ret != 0) |
583 | + rte_exit(EXIT_FAILURE, "rte_eth_dev_info_get() failed\n"); |
584 | + |
585 | + ret = update_jumbo_frame_offload(pid); |
586 | + if (ret != 0) |
587 | + printf("Updating jumbo frame offload failed for port %u\n", |
588 | + pid); |
589 | + |
590 | + if (!(port->dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)) |
591 | + port->dev_conf.txmode.offloads &= |
592 | + ~DEV_TX_OFFLOAD_MBUF_FAST_FREE; |
593 | + |
594 | + /* Apply Rx offloads configuration */ |
595 | + for (i = 0; i < port->dev_info.max_rx_queues; i++) |
596 | + port->rx_conf[i].offloads = port->dev_conf.rxmode.offloads; |
597 | + /* Apply Tx offloads configuration */ |
598 | + for (i = 0; i < port->dev_info.max_tx_queues; i++) |
599 | + port->tx_conf[i].offloads = port->dev_conf.txmode.offloads; |
600 | + |
601 | + /* set flag to initialize port/queue */ |
602 | + port->need_reconfig = 1; |
603 | + port->need_reconfig_queues = 1; |
604 | + port->socket_id = socket_id; |
605 | + port->tx_metadata = 0; |
606 | + |
607 | + /* |
608 | + * Check for maximum number of segments per MTU. |
609 | + * Accordingly update the mbuf data size. |
610 | + */ |
611 | + if (port->dev_info.rx_desc_lim.nb_mtu_seg_max != UINT16_MAX && |
612 | + port->dev_info.rx_desc_lim.nb_mtu_seg_max != 0) { |
613 | + data_size = rx_mode.max_rx_pkt_len / |
614 | + port->dev_info.rx_desc_lim.nb_mtu_seg_max; |
615 | + |
616 | + if ((data_size + RTE_PKTMBUF_HEADROOM) > mbuf_data_size) { |
617 | + mbuf_data_size = data_size + RTE_PKTMBUF_HEADROOM; |
618 | + TESTPMD_LOG(WARNING, "Configured mbuf size %hu\n", |
619 | + mbuf_data_size); |
620 | + } |
621 | + } |
622 | +} |
623 | + |
624 | +static void |
625 | init_config(void) |
626 | { |
627 | portid_t pid; |
628 | - struct rte_port *port; |
629 | struct rte_mempool *mbp; |
630 | unsigned int nb_mbuf_per_pool; |
631 | lcoreid_t lc_id; |
632 | - uint8_t port_per_socket[RTE_MAX_NUMA_NODES]; |
633 | struct rte_gro_param gro_param; |
634 | uint32_t gso_types; |
635 | - uint16_t data_size; |
636 | - bool warning = 0; |
637 | - int k; |
638 | - int ret; |
639 | - |
640 | - memset(port_per_socket,0,RTE_MAX_NUMA_NODES); |
641 | |
642 | /* Configuration of logical cores. */ |
643 | fwd_lcores = rte_zmalloc("testpmd: fwd_lcores", |
644 | @@ -1330,30 +1373,12 @@ init_config(void) |
645 | } |
646 | |
647 | RTE_ETH_FOREACH_DEV(pid) { |
648 | - port = &ports[pid]; |
649 | - /* Apply default TxRx configuration for all ports */ |
650 | - port->dev_conf.txmode = tx_mode; |
651 | - port->dev_conf.rxmode = rx_mode; |
652 | - |
653 | - ret = eth_dev_info_get_print_err(pid, &port->dev_info); |
654 | - if (ret != 0) |
655 | - rte_exit(EXIT_FAILURE, |
656 | - "rte_eth_dev_info_get() failed\n"); |
657 | - |
658 | - ret = update_jumbo_frame_offload(pid); |
659 | - if (ret != 0) |
660 | - printf("Updating jumbo frame offload failed for port %u\n", |
661 | - pid); |
662 | + uint32_t socket_id; |
663 | |
664 | - if (!(port->dev_info.tx_offload_capa & |
665 | - DEV_TX_OFFLOAD_MBUF_FAST_FREE)) |
666 | - port->dev_conf.txmode.offloads &= |
667 | - ~DEV_TX_OFFLOAD_MBUF_FAST_FREE; |
668 | if (numa_support) { |
669 | - if (port_numa[pid] != NUMA_NO_CONFIG) |
670 | - port_per_socket[port_numa[pid]]++; |
671 | - else { |
672 | - uint32_t socket_id = rte_eth_dev_socket_id(pid); |
673 | + socket_id = port_numa[pid]; |
674 | + if (port_numa[pid] == NUMA_NO_CONFIG) { |
675 | + socket_id = rte_eth_dev_socket_id(pid); |
676 | |
677 | /* |
678 | * if socket_id is invalid, |
679 | @@ -1361,45 +1386,15 @@ init_config(void) |
680 | */ |
681 | if (check_socket_id(socket_id) < 0) |
682 | socket_id = socket_ids[0]; |
683 | - port_per_socket[socket_id]++; |
684 | - } |
685 | - } |
686 | - |
687 | - /* Apply Rx offloads configuration */ |
688 | - for (k = 0; k < port->dev_info.max_rx_queues; k++) |
689 | - port->rx_conf[k].offloads = |
690 | - port->dev_conf.rxmode.offloads; |
691 | - /* Apply Tx offloads configuration */ |
692 | - for (k = 0; k < port->dev_info.max_tx_queues; k++) |
693 | - port->tx_conf[k].offloads = |
694 | - port->dev_conf.txmode.offloads; |
695 | - |
696 | - /* set flag to initialize port/queue */ |
697 | - port->need_reconfig = 1; |
698 | - port->need_reconfig_queues = 1; |
699 | - port->tx_metadata = 0; |
700 | - |
701 | - /* Check for maximum number of segments per MTU. Accordingly |
702 | - * update the mbuf data size. |
703 | - */ |
704 | - if (port->dev_info.rx_desc_lim.nb_mtu_seg_max != UINT16_MAX && |
705 | - port->dev_info.rx_desc_lim.nb_mtu_seg_max != 0) { |
706 | - data_size = rx_mode.max_rx_pkt_len / |
707 | - port->dev_info.rx_desc_lim.nb_mtu_seg_max; |
708 | - |
709 | - if ((data_size + RTE_PKTMBUF_HEADROOM) > |
710 | - mbuf_data_size) { |
711 | - mbuf_data_size = data_size + |
712 | - RTE_PKTMBUF_HEADROOM; |
713 | - warning = 1; |
714 | } |
715 | + } else { |
716 | + socket_id = (socket_num == UMA_NO_CONFIG) ? |
717 | + 0 : socket_num; |
718 | } |
719 | + /* Apply default TxRx configuration for all ports */ |
720 | + init_config_port_offloads(pid, socket_id); |
721 | } |
722 | |
723 | - if (warning) |
724 | - TESTPMD_LOG(WARNING, "Configured mbuf size %hu\n", |
725 | - mbuf_data_size); |
726 | - |
727 | /* |
728 | * Create pools of mbuf. |
729 | * If NUMA support is disabled, create a single pool of mbuf in |
730 | @@ -1482,7 +1477,7 @@ init_config(void) |
731 | #if defined RTE_LIBRTE_PMD_SOFTNIC |
732 | if (strcmp(cur_fwd_eng->fwd_mode_name, "softnic") == 0) { |
733 | RTE_ETH_FOREACH_DEV(pid) { |
734 | - port = &ports[pid]; |
735 | + struct rte_port *port = &ports[pid]; |
736 | const char *driver = port->dev_info.driver_name; |
737 | |
738 | if (strcmp(driver, "net_softnic") == 0) |
739 | @@ -1497,21 +1492,8 @@ init_config(void) |
740 | void |
741 | reconfig(portid_t new_port_id, unsigned socket_id) |
742 | { |
743 | - struct rte_port *port; |
744 | - int ret; |
745 | - |
746 | /* Reconfiguration of Ethernet ports. */ |
747 | - port = &ports[new_port_id]; |
748 | - |
749 | - ret = eth_dev_info_get_print_err(new_port_id, &port->dev_info); |
750 | - if (ret != 0) |
751 | - return; |
752 | - |
753 | - /* set flag to initialize port/queue */ |
754 | - port->need_reconfig = 1; |
755 | - port->need_reconfig_queues = 1; |
756 | - port->socket_id = socket_id; |
757 | - |
758 | + init_config_port_offloads(new_port_id, socket_id); |
759 | init_port_config(); |
760 | } |
761 | |
762 | @@ -2105,8 +2087,7 @@ start_packet_forwarding(int with_tx_first) |
763 | return; |
764 | } |
765 | |
766 | - |
767 | - if(dcb_test) { |
768 | + if (dcb_config) { |
769 | for (i = 0; i < nb_fwd_ports; i++) { |
770 | pt_id = fwd_ports_ids[i]; |
771 | port = &ports[pt_id]; |
772 | @@ -2321,14 +2302,11 @@ start_port(portid_t pid) |
773 | portid_t pi; |
774 | queueid_t qi; |
775 | struct rte_port *port; |
776 | - struct rte_ether_addr mac_addr; |
777 | struct rte_eth_hairpin_cap cap; |
778 | |
779 | if (port_id_is_invalid(pid, ENABLED_WARN)) |
780 | return 0; |
781 | |
782 | - if(dcb_config) |
783 | - dcb_test = 1; |
784 | RTE_ETH_FOREACH_DEV(pi) { |
785 | if (pid != pi && pid != (portid_t)RTE_PORT_ALL) |
786 | continue; |
787 | @@ -2487,11 +2465,14 @@ start_port(portid_t pid) |
788 | RTE_PORT_HANDLING, RTE_PORT_STARTED) == 0) |
789 | printf("Port %d can not be set into started\n", pi); |
790 | |
791 | - if (eth_macaddr_get_print_err(pi, &mac_addr) == 0) |
792 | + if (eth_macaddr_get_print_err(pi, &port->eth_addr) == 0) |
793 | printf("Port %d: %02X:%02X:%02X:%02X:%02X:%02X\n", pi, |
794 | - mac_addr.addr_bytes[0], mac_addr.addr_bytes[1], |
795 | - mac_addr.addr_bytes[2], mac_addr.addr_bytes[3], |
796 | - mac_addr.addr_bytes[4], mac_addr.addr_bytes[5]); |
797 | + port->eth_addr.addr_bytes[0], |
798 | + port->eth_addr.addr_bytes[1], |
799 | + port->eth_addr.addr_bytes[2], |
800 | + port->eth_addr.addr_bytes[3], |
801 | + port->eth_addr.addr_bytes[4], |
802 | + port->eth_addr.addr_bytes[5]); |
803 | |
804 | /* at least one port started, need checking link status */ |
805 | need_check_link_status = 1; |
806 | @@ -2513,11 +2494,6 @@ stop_port(portid_t pid) |
807 | struct rte_port *port; |
808 | int need_check_link_status = 0; |
809 | |
810 | - if (dcb_test) { |
811 | - dcb_test = 0; |
812 | - dcb_config = 0; |
813 | - } |
814 | - |
815 | if (port_id_is_invalid(pid, ENABLED_WARN)) |
816 | return; |
817 | |
818 | @@ -3499,8 +3475,6 @@ init_port_dcb_config(portid_t pid, |
819 | rte_port = &ports[pid]; |
820 | |
821 | memset(&port_conf, 0, sizeof(struct rte_eth_conf)); |
822 | - /* Enter DCB configuration status */ |
823 | - dcb_config = 1; |
824 | |
825 | port_conf.rxmode = rte_port->dev_conf.rxmode; |
826 | port_conf.txmode = rte_port->dev_conf.txmode; |
827 | @@ -3570,6 +3544,9 @@ init_port_dcb_config(portid_t pid, |
828 | |
829 | rte_port->dcb_flag = 1; |
830 | |
831 | + /* Enter DCB configuration status */ |
832 | + dcb_config = 1; |
833 | + |
834 | return 0; |
835 | } |
836 | |
837 | diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h |
838 | index 4dbcee3..bbe18a7 100644 |
839 | --- a/app/test-pmd/testpmd.h |
840 | +++ b/app/test-pmd/testpmd.h |
841 | @@ -404,7 +404,6 @@ extern uint64_t noisy_lkup_num_reads; |
842 | extern uint64_t noisy_lkup_num_reads_writes; |
843 | |
844 | extern uint8_t dcb_config; |
845 | -extern uint8_t dcb_test; |
846 | |
847 | extern uint16_t mbuf_data_size; /**< Mbuf data space size. */ |
848 | extern uint32_t param_total_num_mbufs; |
849 | @@ -820,7 +819,7 @@ int set_vf_rate_limit(portid_t port_id, uint16_t vf, uint16_t rate, |
850 | |
851 | void port_rss_hash_conf_show(portid_t port_id, int show_rss_key); |
852 | void port_rss_hash_key_update(portid_t port_id, char rss_type[], |
853 | - uint8_t *hash_key, uint hash_key_len); |
854 | + uint8_t *hash_key, uint8_t hash_key_len); |
855 | int rx_queue_id_is_invalid(queueid_t rxq_id); |
856 | int tx_queue_id_is_invalid(queueid_t txq_id); |
857 | void setup_gro(const char *onoff, portid_t port_id); |
858 | diff --git a/app/test/autotest_test_funcs.py b/app/test/autotest_test_funcs.py |
859 | index 26688b7..016d99c 100644 |
860 | --- a/app/test/autotest_test_funcs.py |
861 | +++ b/app/test/autotest_test_funcs.py |
862 | @@ -12,13 +12,16 @@ import pexpect |
863 | def default_autotest(child, test_name): |
864 | child.sendline(test_name) |
865 | result = child.expect(["Test OK", "Test Failed", |
866 | - "Command not found", pexpect.TIMEOUT], timeout=900) |
867 | + "Command not found", pexpect.TIMEOUT, |
868 | + "Test Skipped"], timeout=900) |
869 | if result == 1: |
870 | return -1, "Fail" |
871 | elif result == 2: |
872 | return -1, "Fail [Not found]" |
873 | elif result == 3: |
874 | return -1, "Fail [Timeout]" |
875 | + elif result == 4: |
876 | + return 0, "Skipped [Not Run]" |
877 | return 0, "Success" |
878 | |
879 | # autotest used to run dump commands |
880 | diff --git a/app/test/meson.build b/app/test/meson.build |
881 | index 24fb59f..2e35e93 100644 |
882 | --- a/app/test/meson.build |
883 | +++ b/app/test/meson.build |
884 | @@ -387,11 +387,10 @@ foreach d:test_deps |
885 | def_lib = get_option('default_library') |
886 | test_dep_objs += get_variable(def_lib + '_rte_' + d) |
887 | endforeach |
888 | -test_dep_objs += cc.find_library('execinfo', required: false) |
889 | |
890 | link_libs = [] |
891 | if get_option('default_library') == 'static' |
892 | - link_libs = dpdk_static_libraries + dpdk_drivers |
893 | + link_libs = dpdk_drivers |
894 | endif |
895 | |
896 | dpdk_test = executable('dpdk-test', |
897 | diff --git a/app/test/packet_burst_generator.c b/app/test/packet_burst_generator.c |
898 | index f203f9d..0fd7290 100644 |
899 | --- a/app/test/packet_burst_generator.c |
900 | +++ b/app/test/packet_burst_generator.c |
901 | @@ -117,6 +117,7 @@ initialize_tcp_header(struct rte_tcp_hdr *tcp_hdr, uint16_t src_port, |
902 | memset(tcp_hdr, 0, sizeof(struct rte_tcp_hdr)); |
903 | tcp_hdr->src_port = rte_cpu_to_be_16(src_port); |
904 | tcp_hdr->dst_port = rte_cpu_to_be_16(dst_port); |
905 | + tcp_hdr->data_off = (sizeof(struct rte_tcp_hdr) << 2) & 0xF0; |
906 | |
907 | return pkt_len; |
908 | } |
909 | @@ -141,8 +142,8 @@ uint16_t |
910 | initialize_ipv6_header(struct rte_ipv6_hdr *ip_hdr, uint8_t *src_addr, |
911 | uint8_t *dst_addr, uint16_t pkt_data_len) |
912 | { |
913 | - ip_hdr->vtc_flow = 0; |
914 | - ip_hdr->payload_len = pkt_data_len; |
915 | + ip_hdr->vtc_flow = rte_cpu_to_be_32(0x60000000); /* Set version to 6. */ |
916 | + ip_hdr->payload_len = rte_cpu_to_be_16(pkt_data_len); |
917 | ip_hdr->proto = IPPROTO_UDP; |
918 | ip_hdr->hop_limits = IP_DEFTTL; |
919 | |
920 | diff --git a/app/test/process.h b/app/test/process.h |
921 | index c3b3780..20e8eed 100644 |
922 | --- a/app/test/process.h |
923 | +++ b/app/test/process.h |
924 | @@ -48,6 +48,7 @@ process_dup(const char *const argv[], int numargs, const char *env_value) |
925 | #ifdef RTE_LIBRTE_PDUMP |
926 | #ifdef RTE_LIBRTE_RING_PMD |
927 | pthread_t thread; |
928 | + int rc; |
929 | #endif |
930 | #endif |
931 | |
932 | @@ -126,8 +127,13 @@ process_dup(const char *const argv[], int numargs, const char *env_value) |
933 | /* parent process does a wait */ |
934 | #ifdef RTE_LIBRTE_PDUMP |
935 | #ifdef RTE_LIBRTE_RING_PMD |
936 | - if ((strcmp(env_value, "run_pdump_server_tests") == 0)) |
937 | - pthread_create(&thread, NULL, &send_pkts, NULL); |
938 | + if ((strcmp(env_value, "run_pdump_server_tests") == 0)) { |
939 | + rc = pthread_create(&thread, NULL, &send_pkts, NULL); |
940 | + if (rc != 0) { |
941 | + rte_panic("Cannot start send pkts thread: %s\n", |
942 | + strerror(rc)); |
943 | + } |
944 | + } |
945 | #endif |
946 | #endif |
947 | |
948 | diff --git a/app/test/test.c b/app/test/test.c |
949 | index 4736a17..3e063af 100644 |
950 | --- a/app/test/test.c |
951 | +++ b/app/test/test.c |
952 | @@ -134,8 +134,13 @@ main(int argc, char **argv) |
953 | goto out; |
954 | } |
955 | |
956 | + argv += ret; |
957 | + |
958 | + prgname = argv[0]; |
959 | + |
960 | #ifdef RTE_LIBRTE_TIMER |
961 | - if (rte_timer_subsystem_init() < 0) { |
962 | + ret = rte_timer_subsystem_init(); |
963 | + if (ret < 0 && ret != -EALREADY) { |
964 | ret = -1; |
965 | goto out; |
966 | } |
967 | @@ -146,10 +151,6 @@ main(int argc, char **argv) |
968 | goto out; |
969 | } |
970 | |
971 | - argv += ret; |
972 | - |
973 | - prgname = argv[0]; |
974 | - |
975 | recursive_call = getenv(RECURSIVE_ENV_VAR); |
976 | if (recursive_call != NULL) { |
977 | ret = do_recursive_call(); |
978 | diff --git a/app/test/test_bpf.c b/app/test/test_bpf.c |
979 | index 4a61a7d..88048b4 100644 |
980 | --- a/app/test/test_bpf.c |
981 | +++ b/app/test/test_bpf.c |
982 | @@ -2744,7 +2744,7 @@ run_test(const struct bpf_test *tst) |
983 | printf("%s@%d: check_result(%s) failed, " |
984 | "error: %d(%s);\n", |
985 | __func__, __LINE__, tst->name, |
986 | - rv, strerror(ret)); |
987 | + rv, strerror(rv)); |
988 | } |
989 | } |
990 | |
991 | diff --git a/app/test/test_cmdline_ipaddr.c b/app/test/test_cmdline_ipaddr.c |
992 | index 088cd5a..312ed79 100644 |
993 | --- a/app/test/test_cmdline_ipaddr.c |
994 | +++ b/app/test/test_cmdline_ipaddr.c |
995 | @@ -255,7 +255,7 @@ const char * ipaddr_invalid_strs[] = { |
996 | /** misc **/ |
997 | |
998 | /* too long */ |
999 | - "1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234" |
1000 | + "1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234", |
1001 | "random invalid text", |
1002 | "", |
1003 | "\0", |
1004 | diff --git a/app/test/test_cmdline_num.c b/app/test/test_cmdline_num.c |
1005 | index 4c97caf..481fc38 100644 |
1006 | --- a/app/test/test_cmdline_num.c |
1007 | +++ b/app/test/test_cmdline_num.c |
1008 | @@ -200,8 +200,8 @@ const char * num_invalid_strs[] = { |
1009 | "-0x1234580A", |
1010 | "-0b0111010101", |
1011 | /* too long (128+ chars) */ |
1012 | - "0b1111000011110000111100001111000011110000111100001111000011110000" |
1013 | - "1111000011110000111100001111000011110000111100001111000011110000", |
1014 | + ("0b1111000011110000111100001111000011110000111100001111000011110000" |
1015 | + "1111000011110000111100001111000011110000111100001111000011110000"), |
1016 | "1E3", |
1017 | "0A", |
1018 | "-B", |
1019 | diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c |
1020 | index a852040..42c5736 100644 |
1021 | --- a/app/test/test_cryptodev.c |
1022 | +++ b/app/test/test_cryptodev.c |
1023 | @@ -112,10 +112,11 @@ setup_test_string(struct rte_mempool *mpool, |
1024 | struct rte_mbuf *m = rte_pktmbuf_alloc(mpool); |
1025 | size_t t_len = len - (blocksize ? (len % blocksize) : 0); |
1026 | |
1027 | - memset(m->buf_addr, 0, m->buf_len); |
1028 | if (m) { |
1029 | - char *dst = rte_pktmbuf_append(m, t_len); |
1030 | + char *dst; |
1031 | |
1032 | + memset(m->buf_addr, 0, m->buf_len); |
1033 | + dst = rte_pktmbuf_append(m, t_len); |
1034 | if (!dst) { |
1035 | rte_pktmbuf_free(m); |
1036 | return NULL; |
1037 | @@ -4761,16 +4762,20 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata, |
1038 | |
1039 | /* Validate obuf */ |
1040 | if (verify) { |
1041 | - TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT( |
1042 | + TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT_OFFSET( |
1043 | plaintext, |
1044 | tdata->plaintext.data, |
1045 | - tdata->plaintext.len >> 3, |
1046 | + (tdata->plaintext.len - tdata->cipher.offset_bits - |
1047 | + (tdata->digest.len << 3)), |
1048 | + tdata->cipher.offset_bits, |
1049 | "SNOW 3G Plaintext data not as expected"); |
1050 | } else { |
1051 | - TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT( |
1052 | + TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT_OFFSET( |
1053 | ciphertext, |
1054 | tdata->ciphertext.data, |
1055 | - tdata->validDataLenInBits.len, |
1056 | + (tdata->validDataLenInBits.len - |
1057 | + tdata->cipher.offset_bits), |
1058 | + tdata->cipher.offset_bits, |
1059 | "SNOW 3G Ciphertext data not as expected"); |
1060 | |
1061 | TEST_ASSERT_BUFFERS_ARE_EQUAL( |
1062 | @@ -4945,16 +4950,20 @@ test_snow3g_auth_cipher_sgl(const struct snow3g_test_data *tdata, |
1063 | |
1064 | /* Validate obuf */ |
1065 | if (verify) { |
1066 | - TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT( |
1067 | + TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT_OFFSET( |
1068 | plaintext, |
1069 | tdata->plaintext.data, |
1070 | - tdata->plaintext.len >> 3, |
1071 | + (tdata->plaintext.len - tdata->cipher.offset_bits - |
1072 | + (tdata->digest.len << 3)), |
1073 | + tdata->cipher.offset_bits, |
1074 | "SNOW 3G Plaintext data not as expected"); |
1075 | } else { |
1076 | - TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT( |
1077 | + TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT_OFFSET( |
1078 | ciphertext, |
1079 | tdata->ciphertext.data, |
1080 | - tdata->validDataLenInBits.len, |
1081 | + (tdata->validDataLenInBits.len - |
1082 | + tdata->cipher.offset_bits), |
1083 | + tdata->cipher.offset_bits, |
1084 | "SNOW 3G Ciphertext data not as expected"); |
1085 | |
1086 | TEST_ASSERT_BUFFERS_ARE_EQUAL( |
1087 | @@ -9653,8 +9662,8 @@ test_multi_session(void) |
1088 | rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); |
1089 | |
1090 | sessions = rte_malloc(NULL, |
1091 | - (sizeof(struct rte_cryptodev_sym_session *) * |
1092 | - MAX_NB_SESSIONS) + 1, 0); |
1093 | + sizeof(struct rte_cryptodev_sym_session *) * |
1094 | + (MAX_NB_SESSIONS + 1), 0); |
1095 | |
1096 | /* Create multiple crypto sessions*/ |
1097 | for (i = 0; i < MAX_NB_SESSIONS; i++) { |
1098 | @@ -9699,6 +9708,7 @@ test_multi_session(void) |
1099 | } |
1100 | } |
1101 | |
1102 | + sessions[i] = NULL; |
1103 | /* Next session create should fail */ |
1104 | rte_cryptodev_sym_session_init(ts_params->valid_devs[0], |
1105 | sessions[i], &ut_params->auth_xform, |
1106 | @@ -11202,7 +11212,7 @@ test_authenticated_decryption_fail_when_corruption( |
1107 | } |
1108 | |
1109 | static int |
1110 | -test_authenticated_encryt_with_esn( |
1111 | +test_authenticated_encrypt_with_esn( |
1112 | struct crypto_testsuite_params *ts_params, |
1113 | struct crypto_unittest_params *ut_params, |
1114 | const struct test_crypto_vector *reference) |
1115 | @@ -11867,7 +11877,7 @@ auth_decryption_AES128CBC_HMAC_SHA1_fail_tag_corrupt(void) |
1116 | static int |
1117 | auth_encrypt_AES128CBC_HMAC_SHA1_esn_check(void) |
1118 | { |
1119 | - return test_authenticated_encryt_with_esn( |
1120 | + return test_authenticated_encrypt_with_esn( |
1121 | &testsuite_params, |
1122 | &unittest_params, |
1123 | &aes128cbc_hmac_sha1_aad_test_vector); |
1124 | diff --git a/app/test/test_cryptodev_aes_test_vectors.h b/app/test/test_cryptodev_aes_test_vectors.h |
1125 | index 66994b6..2b5d417 100644 |
1126 | --- a/app/test/test_cryptodev_aes_test_vectors.h |
1127 | +++ b/app/test/test_cryptodev_aes_test_vectors.h |
1128 | @@ -2212,7 +2212,7 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = { |
1129 | BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2 |
1130 | }, |
1131 | { |
1132 | - .test_descr = "AES-192-CBC Encryption Scater gather", |
1133 | + .test_descr = "AES-192-CBC Encryption Scatter gather", |
1134 | .test_data = &aes_test_data_10, |
1135 | .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, |
1136 | .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG | |
1137 | diff --git a/app/test/test_distributor_perf.c b/app/test/test_distributor_perf.c |
1138 | index f153bcf..1f5db4c 100644 |
1139 | --- a/app/test/test_distributor_perf.c |
1140 | +++ b/app/test/test_distributor_perf.c |
1141 | @@ -188,13 +188,15 @@ quit_workers(struct rte_distributor *d, struct rte_mempool *p) |
1142 | rte_mempool_get_bulk(p, (void *)bufs, num_workers); |
1143 | |
1144 | quit = 1; |
1145 | - for (i = 0; i < num_workers; i++) |
1146 | + for (i = 0; i < num_workers; i++) { |
1147 | bufs[i]->hash.usr = i << 1; |
1148 | - rte_distributor_process(d, bufs, num_workers); |
1149 | + rte_distributor_process(d, &bufs[i], 1); |
1150 | + } |
1151 | |
1152 | rte_mempool_put_bulk(p, (void *)bufs, num_workers); |
1153 | |
1154 | rte_distributor_process(d, NULL, 0); |
1155 | + rte_distributor_flush(d); |
1156 | rte_eal_mp_wait_lcore(); |
1157 | quit = 0; |
1158 | worker_idx = 0; |
1159 | diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c |
1160 | index 5b2c0f5..654bebf 100644 |
1161 | --- a/app/test/test_eal_flags.c |
1162 | +++ b/app/test/test_eal_flags.c |
1163 | @@ -125,6 +125,7 @@ process_hugefiles(const char * prefix, enum hugepage_action action) |
1164 | case HUGEPAGE_CHECK_EXISTS: |
1165 | { |
1166 | /* file exists, return */ |
1167 | + closedir(hugepage_dir); |
1168 | result = 1; |
1169 | goto end; |
1170 | } |
1171 | diff --git a/app/test/test_event_crypto_adapter.c b/app/test/test_event_crypto_adapter.c |
1172 | index 1c0a0fa..b30e0f8 100644 |
1173 | --- a/app/test/test_event_crypto_adapter.c |
1174 | +++ b/app/test/test_event_crypto_adapter.c |
1175 | @@ -224,8 +224,7 @@ test_op_forward_mode(uint8_t session_less) |
1176 | op->sess_type = RTE_CRYPTO_OP_SESSIONLESS; |
1177 | first_xform = &cipher_xform; |
1178 | sym_op->xform = first_xform; |
1179 | - uint32_t len = IV_OFFSET + MAXIMUM_IV_LENGTH + |
1180 | - (sizeof(struct rte_crypto_sym_xform) * 2); |
1181 | + uint32_t len = IV_OFFSET + MAXIMUM_IV_LENGTH; |
1182 | op->private_data_offset = len; |
1183 | /* Fill in private data information */ |
1184 | rte_memcpy(&m_data.response_info, &response_info, |
1185 | @@ -419,8 +418,7 @@ test_op_new_mode(uint8_t session_less) |
1186 | op->sess_type = RTE_CRYPTO_OP_SESSIONLESS; |
1187 | first_xform = &cipher_xform; |
1188 | sym_op->xform = first_xform; |
1189 | - uint32_t len = IV_OFFSET + MAXIMUM_IV_LENGTH + |
1190 | - (sizeof(struct rte_crypto_sym_xform) * 2); |
1191 | + uint32_t len = IV_OFFSET + MAXIMUM_IV_LENGTH; |
1192 | op->private_data_offset = len; |
1193 | /* Fill in private data information */ |
1194 | rte_memcpy(&m_data.response_info, &response_info, |
1195 | @@ -516,7 +514,8 @@ configure_cryptodev(void) |
1196 | NUM_MBUFS, MBUF_CACHE_SIZE, |
1197 | DEFAULT_NUM_XFORMS * |
1198 | sizeof(struct rte_crypto_sym_xform) + |
1199 | - MAXIMUM_IV_LENGTH, |
1200 | + MAXIMUM_IV_LENGTH + |
1201 | + sizeof(union rte_event_crypto_metadata), |
1202 | rte_socket_id()); |
1203 | if (params.op_mpool == NULL) { |
1204 | RTE_LOG(ERR, USER1, "Can't create CRYPTO_OP_POOL\n"); |
1205 | diff --git a/app/test/test_event_timer_adapter.c b/app/test/test_event_timer_adapter.c |
1206 | index ad3f4dc..b536dde 100644 |
1207 | --- a/app/test/test_event_timer_adapter.c |
1208 | +++ b/app/test/test_event_timer_adapter.c |
1209 | @@ -3,6 +3,8 @@ |
1210 | * Copyright(c) 2017-2018 Intel Corporation. |
1211 | */ |
1212 | |
1213 | +#include <math.h> |
1214 | + |
1215 | #include <rte_atomic.h> |
1216 | #include <rte_common.h> |
1217 | #include <rte_cycles.h> |
1218 | @@ -46,7 +48,7 @@ static uint64_t global_info_bkt_tck_ns; |
1219 | static volatile uint8_t arm_done; |
1220 | |
1221 | #define CALC_TICKS(tks) \ |
1222 | - ((tks * global_bkt_tck_ns) / global_info_bkt_tck_ns) |
1223 | + ceil((double)(tks * global_bkt_tck_ns) / global_info_bkt_tck_ns) |
1224 | |
1225 | |
1226 | static bool using_services; |
1227 | diff --git a/app/test/test_flow_classify.c b/app/test/test_flow_classify.c |
1228 | index ef0b6fd..951606f 100644 |
1229 | --- a/app/test/test_flow_classify.c |
1230 | +++ b/app/test/test_flow_classify.c |
1231 | @@ -828,6 +828,12 @@ test_flow_classify(void) |
1232 | cls_params.name = "flow_classifier"; |
1233 | cls_params.socket_id = 0; |
1234 | cls->cls = rte_flow_classifier_create(&cls_params); |
1235 | + if (cls->cls == NULL) { |
1236 | + printf("Line %i: flow classifier create has failed!\n", |
1237 | + __LINE__); |
1238 | + rte_free(cls); |
1239 | + return TEST_FAILED; |
1240 | + } |
1241 | |
1242 | /* initialise ACL table params */ |
1243 | table_acl_params.n_rule_fields = RTE_DIM(ipv4_defs); |
1244 | diff --git a/app/test/test_kni.c b/app/test/test_kni.c |
1245 | index e47ab36..b338c91 100644 |
1246 | --- a/app/test/test_kni.c |
1247 | +++ b/app/test/test_kni.c |
1248 | @@ -562,8 +562,12 @@ test_kni(void) |
1249 | } |
1250 | closedir(dir); |
1251 | |
1252 | - /* Initialize KNI subsytem */ |
1253 | - rte_kni_init(KNI_TEST_MAX_PORTS); |
1254 | + /* Initialize KNI subsystem */ |
1255 | + ret = rte_kni_init(KNI_TEST_MAX_PORTS); |
1256 | + if (ret < 0) { |
1257 | + printf("fail to initialize KNI subsystem\n"); |
1258 | + return -1; |
1259 | + } |
1260 | |
1261 | if (test_kni_allocate_lcores() < 0) { |
1262 | printf("No enough lcores for kni processing\n"); |
1263 | diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c |
1264 | index a5bd169..3224272 100644 |
1265 | --- a/app/test/test_mbuf.c |
1266 | +++ b/app/test/test_mbuf.c |
1267 | @@ -2344,7 +2344,7 @@ test_pktmbuf_ext_shinfo_init_helper(struct rte_mempool *pktmbuf_pool) |
1268 | if (rte_mbuf_refcnt_read(m) != 1) |
1269 | GOTO_FAIL("%s: Invalid refcnt in mbuf\n", __func__); |
1270 | |
1271 | - buf_iova = rte_mempool_virt2iova(ext_buf_addr); |
1272 | + buf_iova = rte_mem_virt2iova(ext_buf_addr); |
1273 | rte_pktmbuf_attach_extbuf(m, ext_buf_addr, buf_iova, buf_len, |
1274 | ret_shinfo); |
1275 | if (m->ol_flags != EXT_ATTACHED_MBUF) |
1276 | diff --git a/app/test/test_mempool.c b/app/test/test_mempool.c |
1277 | index c32a5d3..06a0f7a 100644 |
1278 | --- a/app/test/test_mempool.c |
1279 | +++ b/app/test/test_mempool.c |
1280 | @@ -552,7 +552,7 @@ test_mempool(void) |
1281 | GOTO_ERR(ret, err); |
1282 | |
1283 | /* test to initialize mempool objects and memory */ |
1284 | - nb_objs = rte_mempool_obj_iter(mp_stack_mempool_iter, rte_pktmbuf_init, |
1285 | + nb_objs = rte_mempool_obj_iter(mp_stack_mempool_iter, my_obj_init, |
1286 | NULL); |
1287 | if (nb_objs == 0) |
1288 | GOTO_ERR(ret, err); |
1289 | diff --git a/app/test/test_power_cpufreq.c b/app/test/test_power_cpufreq.c |
1290 | index d203810..d0c7e60 100644 |
1291 | --- a/app/test/test_power_cpufreq.c |
1292 | +++ b/app/test/test_power_cpufreq.c |
1293 | @@ -8,6 +8,7 @@ |
1294 | #include <limits.h> |
1295 | #include <string.h> |
1296 | #include <inttypes.h> |
1297 | +#include <rte_cycles.h> |
1298 | |
1299 | #include "test.h" |
1300 | |
1301 | @@ -34,37 +35,79 @@ test_power_caps(void) |
1302 | #define TEST_POWER_LCORE_INVALID ((unsigned)RTE_MAX_LCORE) |
1303 | #define TEST_POWER_FREQS_NUM_MAX ((unsigned)RTE_MAX_LCORE_FREQS) |
1304 | |
1305 | -#define TEST_POWER_SYSFILE_CUR_FREQ \ |
1306 | +/* macros used for rounding frequency to nearest 100000 */ |
1307 | +#define TEST_FREQ_ROUNDING_DELTA 50000 |
1308 | +#define TEST_ROUND_FREQ_TO_N_100000 100000 |
1309 | + |
1310 | +#define TEST_POWER_SYSFILE_CPUINFO_FREQ \ |
1311 | "/sys/devices/system/cpu/cpu%u/cpufreq/cpuinfo_cur_freq" |
1312 | +#define TEST_POWER_SYSFILE_SCALING_FREQ \ |
1313 | + "/sys/devices/system/cpu/cpu%u/cpufreq/scaling_cur_freq" |
1314 | |
1315 | static uint32_t total_freq_num; |
1316 | static uint32_t freqs[TEST_POWER_FREQS_NUM_MAX]; |
1317 | |
1318 | static int |
1319 | -check_cur_freq(unsigned lcore_id, uint32_t idx) |
1320 | +check_cur_freq(unsigned int lcore_id, uint32_t idx, bool turbo) |
1321 | { |
1322 | #define TEST_POWER_CONVERT_TO_DECIMAL 10 |
1323 | +#define MAX_LOOP 100 |
1324 | FILE *f; |
1325 | char fullpath[PATH_MAX]; |
1326 | char buf[BUFSIZ]; |
1327 | uint32_t cur_freq; |
1328 | int ret = -1; |
1329 | + int i; |
1330 | |
1331 | if (snprintf(fullpath, sizeof(fullpath), |
1332 | - TEST_POWER_SYSFILE_CUR_FREQ, lcore_id) < 0) { |
1333 | + TEST_POWER_SYSFILE_SCALING_FREQ, lcore_id) < 0) { |
1334 | return 0; |
1335 | } |
1336 | f = fopen(fullpath, "r"); |
1337 | if (f == NULL) { |
1338 | - return 0; |
1339 | - } |
1340 | - if (fgets(buf, sizeof(buf), f) == NULL) { |
1341 | - goto fail_get_cur_freq; |
1342 | + if (snprintf(fullpath, sizeof(fullpath), |
1343 | + TEST_POWER_SYSFILE_CPUINFO_FREQ, lcore_id) < 0) { |
1344 | + return 0; |
1345 | + } |
1346 | + f = fopen(fullpath, "r"); |
1347 | + if (f == NULL) { |
1348 | + return 0; |
1349 | + } |
1350 | + } |
1351 | + for (i = 0; i < MAX_LOOP; i++) { |
1352 | + fflush(f); |
1353 | + if (fgets(buf, sizeof(buf), f) == NULL) |
1354 | + goto fail_all; |
1355 | + |
1356 | + cur_freq = strtoul(buf, NULL, TEST_POWER_CONVERT_TO_DECIMAL); |
1357 | + |
1358 | + /* convert the frequency to nearest 100000 value |
1359 | + * Ex: if cur_freq=1396789 then freq_conv=1400000 |
1360 | + * Ex: if cur_freq=800030 then freq_conv=800000 |
1361 | + */ |
1362 | + unsigned int freq_conv = 0; |
1363 | + freq_conv = (cur_freq + TEST_FREQ_ROUNDING_DELTA) |
1364 | + / TEST_ROUND_FREQ_TO_N_100000; |
1365 | + freq_conv = freq_conv * TEST_ROUND_FREQ_TO_N_100000; |
1366 | + |
1367 | + if (turbo) |
1368 | + ret = (freqs[idx] <= freq_conv ? 0 : -1); |
1369 | + else |
1370 | + ret = (freqs[idx] == freq_conv ? 0 : -1); |
1371 | + |
1372 | + if (ret == 0) |
1373 | + break; |
1374 | + |
1375 | + if (fseek(f, 0, SEEK_SET) < 0) { |
1376 | + printf("Fail to set file position indicator to 0\n"); |
1377 | + goto fail_all; |
1378 | + } |
1379 | + |
1380 | + /* wait for the value to be updated */ |
1381 | + rte_delay_ms(10); |
1382 | } |
1383 | - cur_freq = strtoul(buf, NULL, TEST_POWER_CONVERT_TO_DECIMAL); |
1384 | - ret = (freqs[idx] == cur_freq ? 0 : -1); |
1385 | |
1386 | -fail_get_cur_freq: |
1387 | +fail_all: |
1388 | fclose(f); |
1389 | |
1390 | return ret; |
1391 | @@ -143,7 +186,7 @@ check_power_get_freq(void) |
1392 | } |
1393 | |
1394 | /* Check the current frequency */ |
1395 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, count); |
1396 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, count, false); |
1397 | if (ret < 0) |
1398 | return -1; |
1399 | |
1400 | @@ -193,7 +236,7 @@ check_power_set_freq(void) |
1401 | } |
1402 | |
1403 | /* Check the current frequency */ |
1404 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, total_freq_num - 1); |
1405 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, total_freq_num - 1, false); |
1406 | if (ret < 0) |
1407 | return -1; |
1408 | |
1409 | @@ -206,6 +249,8 @@ check_power_freq_down(void) |
1410 | { |
1411 | int ret; |
1412 | |
1413 | + rte_power_freq_enable_turbo(TEST_POWER_LCORE_ID); |
1414 | + |
1415 | /* test with an invalid lcore id */ |
1416 | ret = rte_power_freq_down(TEST_POWER_LCORE_INVALID); |
1417 | if (ret >= 0) { |
1418 | @@ -229,7 +274,7 @@ check_power_freq_down(void) |
1419 | } |
1420 | |
1421 | /* Check the current frequency */ |
1422 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, total_freq_num - 1); |
1423 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, total_freq_num - 1, false); |
1424 | if (ret < 0) |
1425 | return -1; |
1426 | |
1427 | @@ -248,7 +293,7 @@ check_power_freq_down(void) |
1428 | } |
1429 | |
1430 | /* Check the current frequency */ |
1431 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, 1); |
1432 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, 1, false); |
1433 | if (ret < 0) |
1434 | return -1; |
1435 | |
1436 | @@ -284,7 +329,7 @@ check_power_freq_up(void) |
1437 | } |
1438 | |
1439 | /* Check the current frequency */ |
1440 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, total_freq_num - 2); |
1441 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, total_freq_num - 2, false); |
1442 | if (ret < 0) |
1443 | return -1; |
1444 | |
1445 | @@ -303,7 +348,7 @@ check_power_freq_up(void) |
1446 | } |
1447 | |
1448 | /* Check the current frequency */ |
1449 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, 0); |
1450 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, 0, true); |
1451 | if (ret < 0) |
1452 | return -1; |
1453 | |
1454 | @@ -331,7 +376,7 @@ check_power_freq_max(void) |
1455 | } |
1456 | |
1457 | /* Check the current frequency */ |
1458 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, 0); |
1459 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, 0, true); |
1460 | if (ret < 0) |
1461 | return -1; |
1462 | |
1463 | @@ -359,7 +404,7 @@ check_power_freq_min(void) |
1464 | } |
1465 | |
1466 | /* Check the current frequency */ |
1467 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, total_freq_num - 1); |
1468 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, total_freq_num - 1, false); |
1469 | if (ret < 0) |
1470 | return -1; |
1471 | |
1472 | @@ -391,9 +436,15 @@ check_power_turbo(void) |
1473 | TEST_POWER_LCORE_ID); |
1474 | return -1; |
1475 | } |
1476 | + ret = rte_power_freq_max(TEST_POWER_LCORE_ID); |
1477 | + if (ret < 0) { |
1478 | + printf("Fail to scale up the freq to max on lcore %u\n", |
1479 | + TEST_POWER_LCORE_ID); |
1480 | + return -1; |
1481 | + } |
1482 | |
1483 | /* Check the current frequency */ |
1484 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, 0); |
1485 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, 0, true); |
1486 | if (ret < 0) |
1487 | return -1; |
1488 | |
1489 | @@ -410,9 +461,15 @@ check_power_turbo(void) |
1490 | TEST_POWER_LCORE_ID); |
1491 | return -1; |
1492 | } |
1493 | + ret = rte_power_freq_max(TEST_POWER_LCORE_ID); |
1494 | + if (ret < 0) { |
1495 | + printf("Fail to scale up the freq to max on lcore %u\n", |
1496 | + TEST_POWER_LCORE_ID); |
1497 | + return -1; |
1498 | + } |
1499 | |
1500 | /* Check the current frequency */ |
1501 | - ret = check_cur_freq(TEST_POWER_LCORE_ID, 1); |
1502 | + ret = check_cur_freq(TEST_POWER_LCORE_ID, 1, false); |
1503 | if (ret < 0) |
1504 | return -1; |
1505 | |
1506 | diff --git a/app/test/test_prefetch.c b/app/test/test_prefetch.c |
1507 | index 41f219a..086c686 100644 |
1508 | --- a/app/test/test_prefetch.c |
1509 | +++ b/app/test/test_prefetch.c |
1510 | @@ -20,7 +20,7 @@ |
1511 | static int |
1512 | test_prefetch(void) |
1513 | { |
1514 | - int a; |
1515 | + int a = 0; |
1516 | |
1517 | rte_prefetch0(&a); |
1518 | rte_prefetch1(&a); |
1519 | diff --git a/app/test/test_reciprocal_division_perf.c b/app/test/test_reciprocal_division_perf.c |
1520 | index a7be8aa..4f62587 100644 |
1521 | --- a/app/test/test_reciprocal_division_perf.c |
1522 | +++ b/app/test/test_reciprocal_division_perf.c |
1523 | @@ -71,10 +71,12 @@ test_reciprocal_division_perf(void) |
1524 | tot_cyc_n); |
1525 | printf("Total number of cycles reciprocal division : %"PRIu64"\n", |
1526 | tot_cyc_r); |
1527 | - printf("Cycles per division(normal) : %3.2f\n", |
1528 | - ((double)tot_cyc_n)/i); |
1529 | - printf("Cycles per division(reciprocal) : %3.2f\n\n", |
1530 | - ((double)tot_cyc_r)/i); |
1531 | + if (i != 0) { |
1532 | + printf("Cycles per division(normal) : %3.2f\n", |
1533 | + ((double)tot_cyc_n)/i); |
1534 | + printf("Cycles per division(reciprocal) : %3.2f\n\n", |
1535 | + ((double)tot_cyc_r)/i); |
1536 | + } |
1537 | |
1538 | tot_cyc_n = 0; |
1539 | tot_cyc_r = 0; |
1540 | @@ -111,11 +113,12 @@ test_reciprocal_division_perf(void) |
1541 | tot_cyc_n); |
1542 | printf("Total number of cycles reciprocal division : %"PRIu64"\n", |
1543 | tot_cyc_r); |
1544 | - printf("Cycles per division(normal) : %3.2f\n", |
1545 | - ((double)tot_cyc_n)/i); |
1546 | - printf("Cycles per division(reciprocal) : %3.2f\n\n", |
1547 | - ((double)tot_cyc_r)/i); |
1548 | - |
1549 | + if (i != 0) { |
1550 | + printf("Cycles per division(normal) : %3.2f\n", |
1551 | + ((double)tot_cyc_n)/i); |
1552 | + printf("Cycles per division(reciprocal) : %3.2f\n\n", |
1553 | + ((double)tot_cyc_r)/i); |
1554 | + } |
1555 | tot_cyc_n = 0; |
1556 | tot_cyc_r = 0; |
1557 | |
1558 | @@ -152,10 +155,12 @@ test_reciprocal_division_perf(void) |
1559 | tot_cyc_n); |
1560 | printf("Total number of cycles reciprocal division : %"PRIu64"\n", |
1561 | tot_cyc_r); |
1562 | - printf("Cycles per division(normal) : %3.2f\n", |
1563 | - ((double)tot_cyc_n)/i); |
1564 | - printf("Cycles per division(reciprocal) : %3.2f\n\n", |
1565 | - ((double)tot_cyc_r)/i); |
1566 | + if (i != 0) { |
1567 | + printf("Cycles per division(normal) : %3.2f\n", |
1568 | + ((double)tot_cyc_n)/i); |
1569 | + printf("Cycles per division(reciprocal) : %3.2f\n\n", |
1570 | + ((double)tot_cyc_r)/i); |
1571 | + } |
1572 | |
1573 | tot_cyc_n = 0; |
1574 | tot_cyc_r = 0; |
1575 | @@ -190,10 +195,12 @@ test_reciprocal_division_perf(void) |
1576 | tot_cyc_n); |
1577 | printf("Total number of cycles reciprocal division : %"PRIu64"\n", |
1578 | tot_cyc_r); |
1579 | - printf("Cycles per division(normal) : %3.2f\n", |
1580 | - ((double)tot_cyc_n)/i); |
1581 | - printf("Cycles per division(reciprocal) : %3.2f\n", |
1582 | - ((double)tot_cyc_r)/i); |
1583 | + if (i != 0) { |
1584 | + printf("Cycles per division(normal) : %3.2f\n", |
1585 | + ((double)tot_cyc_n)/i); |
1586 | + printf("Cycles per division(reciprocal) : %3.2f\n", |
1587 | + ((double)tot_cyc_r)/i); |
1588 | + } |
1589 | |
1590 | return result; |
1591 | } |
1592 | diff --git a/app/test/test_stack.c b/app/test/test_stack.c |
1593 | index c8dac1f..fe6f1aa 100644 |
1594 | --- a/app/test/test_stack.c |
1595 | +++ b/app/test/test_stack.c |
1596 | @@ -419,7 +419,11 @@ test_stack(void) |
1597 | static int |
1598 | test_lf_stack(void) |
1599 | { |
1600 | +#if defined(RTE_STACK_LF_SUPPORTED) |
1601 | return __test_stack(RTE_STACK_F_LF); |
1602 | +#else |
1603 | + return TEST_SKIPPED; |
1604 | +#endif |
1605 | } |
1606 | |
1607 | REGISTER_TEST_COMMAND(stack_autotest, test_stack); |
1608 | diff --git a/app/test/test_stack_perf.c b/app/test/test_stack_perf.c |
1609 | index 3ab7267..a0c7d4d 100644 |
1610 | --- a/app/test/test_stack_perf.c |
1611 | +++ b/app/test/test_stack_perf.c |
1612 | @@ -349,7 +349,11 @@ test_stack_perf(void) |
1613 | static int |
1614 | test_lf_stack_perf(void) |
1615 | { |
1616 | +#if defined(RTE_STACK_LF_SUPPORTED) |
1617 | return __test_stack_perf(RTE_STACK_F_LF); |
1618 | +#else |
1619 | + return TEST_SKIPPED; |
1620 | +#endif |
1621 | } |
1622 | |
1623 | REGISTER_TEST_COMMAND(stack_perf_autotest, test_stack_perf); |
1624 | diff --git a/app/test/test_table_tables.c b/app/test/test_table_tables.c |
1625 | index 1aa269f..4ff6ab1 100644 |
1626 | --- a/app/test/test_table_tables.c |
1627 | +++ b/app/test/test_table_tables.c |
1628 | @@ -28,7 +28,8 @@ table_test table_tests[] = { |
1629 | APP_METADATA_OFFSET(0)); \ |
1630 | key = RTE_MBUF_METADATA_UINT8_PTR(mbuf, \ |
1631 | APP_METADATA_OFFSET(32)); \ |
1632 | - memset(key, 0, 32); \ |
1633 | + if (mbuf->priv_size + mbuf->buf_len >= 64) \ |
1634 | + memset(key, 0, 32); \ |
1635 | k32 = (uint32_t *) key; \ |
1636 | k32[0] = (value); \ |
1637 | *signature = pipeline_test_hash(key, NULL, 0, 0); \ |
1638 | diff --git a/app/test/test_timer_secondary.c b/app/test/test_timer_secondary.c |
1639 | index 790f180..a4033b6 100644 |
1640 | --- a/app/test/test_timer_secondary.c |
1641 | +++ b/app/test/test_timer_secondary.c |
1642 | @@ -126,9 +126,9 @@ test_timer_secondary(void) |
1643 | |
1644 | mz = rte_memzone_reserve(TEST_INFO_MZ_NAME, sizeof(*test_info), |
1645 | SOCKET_ID_ANY, 0); |
1646 | - test_info = mz->addr; |
1647 | - TEST_ASSERT_NOT_NULL(test_info, "Couldn't allocate memory for " |
1648 | + TEST_ASSERT_NOT_NULL(mz, "Couldn't allocate memory for " |
1649 | "test data"); |
1650 | + test_info = mz->addr; |
1651 | |
1652 | test_info->tim_mempool = rte_mempool_create("test_timer_mp", |
1653 | NUM_TIMERS, sizeof(struct rte_timer), 0, 0, |
1654 | @@ -172,9 +172,9 @@ test_timer_secondary(void) |
1655 | int i; |
1656 | |
1657 | mz = rte_memzone_lookup(TEST_INFO_MZ_NAME); |
1658 | - test_info = mz->addr; |
1659 | - TEST_ASSERT_NOT_NULL(test_info, "Couldn't lookup memzone for " |
1660 | + TEST_ASSERT_NOT_NULL(mz, "Couldn't lookup memzone for " |
1661 | "test info"); |
1662 | + test_info = mz->addr; |
1663 | |
1664 | for (i = 0; i < NUM_TIMERS; i++) { |
1665 | rte_mempool_get(test_info->tim_mempool, (void **)&tim); |
1666 | diff --git a/buildtools/check-experimental-syms.sh b/buildtools/check-experimental-syms.sh |
1667 | index f3603e5..fe07dd3 100755 |
1668 | --- a/buildtools/check-experimental-syms.sh |
1669 | +++ b/buildtools/check-experimental-syms.sh |
1670 | @@ -18,7 +18,7 @@ then |
1671 | exit 0 |
1672 | fi |
1673 | |
1674 | -DUMPFILE=$(mktemp -t dpdk.${0##*/}.XXX.objdump) |
1675 | +DUMPFILE=$(mktemp -t dpdk.${0##*/}.objdump.XXXXXX) |
1676 | trap 'rm -f "$DUMPFILE"' EXIT |
1677 | objdump -t $OBJFILE >$DUMPFILE |
1678 | |
1679 | diff --git a/buildtools/map-list-symbol.sh b/buildtools/map-list-symbol.sh |
1680 | index 5509b4a..3bf9bd6 100755 |
1681 | --- a/buildtools/map-list-symbol.sh |
1682 | +++ b/buildtools/map-list-symbol.sh |
1683 | @@ -44,7 +44,7 @@ for file in $@; do |
1684 | ret = 1; |
1685 | } |
1686 | } |
1687 | - /^.*{/ { |
1688 | + /^.*\{/ { |
1689 | if ("'$section'" == "all" || $1 == "'$section'") { |
1690 | current_section = $1; |
1691 | } |
1692 | diff --git a/buildtools/pkg-config/meson.build b/buildtools/pkg-config/meson.build |
1693 | deleted file mode 100644 |
1694 | index 39a8fd1..0000000 |
1695 | --- a/buildtools/pkg-config/meson.build |
1696 | +++ /dev/null |
1697 | @@ -1,59 +0,0 @@ |
1698 | -# SPDX-License-Identifier: BSD-3-Clause |
1699 | -# Copyright(c) 2020 Intel Corporation |
1700 | - |
1701 | -pkg = import('pkgconfig') |
1702 | -pkg_extra_cflags = ['-include', 'rte_config.h'] + machine_args |
1703 | -if is_freebsd |
1704 | - pkg_extra_cflags += ['-D__BSD_VISIBLE'] |
1705 | -endif |
1706 | - |
1707 | -# When calling pkg-config --static --libs, pkg-config will always output the |
1708 | -# regular libs first, and then the extra libs from Libs.private field, |
1709 | -# since the assumption is that those are additional dependencies for building |
1710 | -# statically that the .a files depend upon. The output order of .pc fields is: |
1711 | -# Libs Libs.private Requires Requires.private |
1712 | -# The fields Requires* are for package names. |
1713 | -# The flags of the DPDK libraries must be defined in Libs* fields. |
1714 | -# However, the DPDK drivers are linked only in static builds (Libs.private), |
1715 | -# and those need to come *before* the regular libraries (Libs field). |
1716 | -# This requirement is satisfied by moving the regular libs in a separate file |
1717 | -# included in the field Requires (after Libs.private). |
1718 | -# Another requirement is to allow linking dependencies as shared libraries, |
1719 | -# while linking static DPDK libraries and drivers. It is satisfied by |
1720 | -# listing the static files in Libs.private with the explicit syntax -l:libfoo.a. |
1721 | -# As a consequence, the regular DPDK libraries are already listed as static |
1722 | -# in the field Libs.private. The second occurences of DPDK libraries, |
1723 | -# included from Requires and used for shared library linkage case, |
1724 | -# are skipped in the case of static linkage thanks to the flag --as-needed. |
1725 | - |
1726 | - |
1727 | -pkg.generate(name: 'dpdk-libs', |
1728 | - filebase: 'libdpdk-libs', |
1729 | - description: '''Internal-only DPDK pkgconfig file. Not for direct use. |
1730 | -Use libdpdk.pc instead of this file to query DPDK compile/link arguments''', |
1731 | - version: meson.project_version(), |
1732 | - subdirs: [get_option('include_subdir_arch'), '.'], |
1733 | - extra_cflags: pkg_extra_cflags, |
1734 | - libraries: ['-Wl,--as-needed'] + dpdk_libraries, |
1735 | - libraries_private: dpdk_extra_ldflags) |
1736 | - |
1737 | -platform_flags = [] |
1738 | -if not is_windows |
1739 | - platform_flags += ['-Wl,--export-dynamic'] # ELF only |
1740 | -endif |
1741 | -pkg.generate(name: 'DPDK', # main DPDK pkgconfig file |
1742 | - filebase: 'libdpdk', |
1743 | - version: meson.project_version(), |
1744 | - description: '''The Data Plane Development Kit (DPDK). |
1745 | -Note that CFLAGS might contain an -march flag higher than typical baseline. |
1746 | -This is required for a number of static inline functions in the public headers.''', |
1747 | - requires: ['libdpdk-libs', libbsd], # may need libbsd for string funcs |
1748 | - # if libbsd is not enabled, then this is blank |
1749 | - libraries_private: ['-Wl,--whole-archive'] + |
1750 | - dpdk_drivers + dpdk_static_libraries + |
1751 | - ['-Wl,--no-whole-archive'] + platform_flags |
1752 | -) |
1753 | - |
1754 | -# For static linking with dependencies as shared libraries, |
1755 | -# the internal static libraries must be flagged explicitly. |
1756 | -run_command(py3, 'set-static-linker-flags.py', check: true) |
1757 | diff --git a/buildtools/pkg-config/set-static-linker-flags.py b/buildtools/pkg-config/set-static-linker-flags.py |
1758 | deleted file mode 100644 |
1759 | index 2745db3..0000000 |
1760 | --- a/buildtools/pkg-config/set-static-linker-flags.py |
1761 | +++ /dev/null |
1762 | @@ -1,38 +0,0 @@ |
1763 | -#!/usr/bin/env python3 |
1764 | -# SPDX-License-Identifier: BSD-3-Clause |
1765 | -# Copyright(c) 2020 Intel Corporation |
1766 | - |
1767 | -# Script to fix flags for static linking in pkgconfig files from meson |
1768 | -# Should be called from meson build itself |
1769 | -import os |
1770 | -import sys |
1771 | - |
1772 | - |
1773 | -def fix_ldflag(f): |
1774 | - if not f.startswith('-lrte_'): |
1775 | - return f |
1776 | - return '-l:lib' + f[2:] + '.a' |
1777 | - |
1778 | - |
1779 | -def fix_libs_private(line): |
1780 | - if not line.startswith('Libs.private'): |
1781 | - return line |
1782 | - ldflags = [fix_ldflag(flag) for flag in line.split()] |
1783 | - return ' '.join(ldflags) + '\n' |
1784 | - |
1785 | - |
1786 | -def process_pc_file(filepath): |
1787 | - print('Processing', filepath) |
1788 | - with open(filepath) as src: |
1789 | - lines = src.readlines() |
1790 | - with open(filepath, 'w') as dst: |
1791 | - dst.writelines([fix_libs_private(line) for line in lines]) |
1792 | - |
1793 | - |
1794 | -if 'MESON_BUILD_ROOT' not in os.environ: |
1795 | - print('This script must be called from a meson build environment') |
1796 | - sys.exit(1) |
1797 | -for root, dirs, files in os.walk(os.environ['MESON_BUILD_ROOT']): |
1798 | - pc_files = [f for f in files if f.endswith('.pc')] |
1799 | - for f in pc_files: |
1800 | - process_pc_file(os.path.join(root, f)) |
1801 | diff --git a/config/meson.build b/config/meson.build |
1802 | index b1f728e..4007b8f 100644 |
1803 | --- a/config/meson.build |
1804 | +++ b/config/meson.build |
1805 | @@ -121,11 +121,8 @@ if cc.find_library('m', required : false).found() |
1806 | dpdk_extra_ldflags += '-lm' |
1807 | endif |
1808 | |
1809 | -# for linux link against dl, for bsd execinfo |
1810 | if is_linux |
1811 | link_lib = 'dl' |
1812 | -elif is_freebsd |
1813 | - link_lib = 'execinfo' |
1814 | else |
1815 | link_lib = '' |
1816 | endif |
1817 | @@ -155,6 +152,12 @@ if fdt_dep.found() and cc.has_header('fdt.h') |
1818 | dpdk_extra_ldflags += '-lfdt' |
1819 | endif |
1820 | |
1821 | +libexecinfo = cc.find_library('libexecinfo', required: false) |
1822 | +if libexecinfo.found() and cc.has_header('execinfo.h') |
1823 | + add_project_link_arguments('-lexecinfo', language: 'c') |
1824 | + dpdk_extra_ldflags += '-lexecinfo' |
1825 | +endif |
1826 | + |
1827 | # check for libbsd |
1828 | libbsd = dependency('libbsd', required: false, method: 'pkg-config') |
1829 | if libbsd.found() |
1830 | diff --git a/config/ppc_64/meson.build b/config/ppc_64/meson.build |
1831 | index aa7d73d..54a94d6 100644 |
1832 | --- a/config/ppc_64/meson.build |
1833 | +++ b/config/ppc_64/meson.build |
1834 | @@ -17,9 +17,20 @@ if not power9_supported |
1835 | dpdk_conf.set('RTE_MACHINE','power8') |
1836 | endif |
1837 | |
1838 | -# overrides specific to ppc64 |
1839 | -dpdk_conf.set('RTE_MAX_LCORE', 1536) |
1840 | -dpdk_conf.set('RTE_MAX_NUMA_NODES', 32) |
1841 | +# Certain POWER9 systems can scale as high as 1536 LCORES, but setting such a |
1842 | +# high value can waste memory, cause timeouts in time limited autotests, and is |
1843 | +# unlikely to be used in many production situations. Similarly, keeping the |
1844 | +# default 64 LCORES seems too small as most POWER9 dual socket systems will have |
1845 | +# at least 128 LCORES available. Set RTE_MAX_LCORE to 128 for POWER systems as |
1846 | +# a compromise. |
1847 | +dpdk_conf.set('RTE_MAX_LCORE', 128) |
1848 | + |
1849 | +# POWER systems do not allocate NUMA nodes sequentially. A dual socket system |
1850 | +# will have CPUs associated with NUMA nodes 0 & 8, so ensure that the second |
1851 | +# NUMA node will be supported by setting RTE_MAX_NUMA_NODES to 16. High end |
1852 | +# systems can scale even higher with as many as 32 NUMA nodes. |
1853 | +dpdk_conf.set('RTE_MAX_NUMA_NODES', 16) |
1854 | + |
1855 | dpdk_conf.set('RTE_CACHE_LINE_SIZE', 128) |
1856 | dpdk_conf.set('RTE_MACHINE_CPUFLAG_ALTIVEC', 1) |
1857 | dpdk_conf.set('RTE_MACHINE_CPUFLAG_VSX', 1) |
1858 | diff --git a/debian/changelog b/debian/changelog |
1859 | index 9426c2e..b4bc5e4 100644 |
1860 | --- a/debian/changelog |
1861 | +++ b/debian/changelog |
1862 | @@ -1,3 +1,15 @@ |
1863 | +dpdk (19.11.10-0ubuntu0.20.04.1) focal; urgency=medium |
1864 | + |
1865 | + * Merge the latest upstream stable minor release 19.11.10 (LP: #1940913) |
1866 | + Release notes available at: |
1867 | + https://doc.dpdk.org/guides-19.11/rel_notes/release_19_11.html |
1868 | + - Revert "fix linking back to pre be like 19.11.6 behavior (LP 1920141)" |
1869 | + [now part of upstream] |
1870 | + * d/p/u/lp-1940957-net-i40e-support-25G-AOC-ACC-cables.patch: fix issues |
1871 | + with 25G AOC cables (LP: #1940957) |
1872 | + |
1873 | + -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 24 Aug 2021 11:51:47 +0200 |
1874 | + |
1875 | dpdk (19.11.7-0ubuntu0.20.04.1) focal; urgency=medium |
1876 | |
1877 | * Merge the latest upstream stable minor release 19.11.7-rc1 |
1878 | diff --git a/debian/patches/lp-1920141-01-Revert-Revert-Revert-build-pkg-config-prevent-overli.patch b/debian/patches/lp-1920141-01-Revert-Revert-Revert-build-pkg-config-prevent-overli.patch |
1879 | deleted file mode 100644 |
1880 | index cd5adec..0000000 |
1881 | --- a/debian/patches/lp-1920141-01-Revert-Revert-Revert-build-pkg-config-prevent-overli.patch |
1882 | +++ /dev/null |
1883 | @@ -1,46 +0,0 @@ |
1884 | -From 9a776641702dcfdccc53feff143b4d3fea3d84f8 Mon Sep 17 00:00:00 2001 |
1885 | -From: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
1886 | -Date: Mon, 22 Mar 2021 10:51:03 +0100 |
1887 | -Subject: [PATCH 1/7] Revert "Revert "Revert "build/pkg-config: prevent |
1888 | - overlinking""" |
1889 | - |
1890 | -This reverts commit f49248a990b5c34938c5246e013bc82f1296959f. |
1891 | -This series changes linking behavior in 19.11.x and thereby should stay |
1892 | -out. It breaks - for example - a rebuild of OVS 2.13 or builds |
1893 | -of later OVS 2.13.x stable releases. |
1894 | - |
1895 | -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1920141 |
1896 | -Forwarded: http://mails.dpdk.org/archives/stable/2021-March/029484.html |
1897 | -Last-Update: 2021-03-22 |
1898 | ---- |
1899 | - buildtools/pkg-config/meson.build | 7 +------ |
1900 | - 1 file changed, 1 insertion(+), 6 deletions(-) |
1901 | - |
1902 | -diff --git a/buildtools/pkg-config/meson.build b/buildtools/pkg-config/meson.build |
1903 | -index 39a8fd1c8e..63a76b56d3 100644 |
1904 | ---- a/buildtools/pkg-config/meson.build |
1905 | -+++ b/buildtools/pkg-config/meson.build |
1906 | -@@ -21,11 +21,6 @@ endif |
1907 | - # Another requirement is to allow linking dependencies as shared libraries, |
1908 | - # while linking static DPDK libraries and drivers. It is satisfied by |
1909 | - # listing the static files in Libs.private with the explicit syntax -l:libfoo.a. |
1910 | --# As a consequence, the regular DPDK libraries are already listed as static |
1911 | --# in the field Libs.private. The second occurences of DPDK libraries, |
1912 | --# included from Requires and used for shared library linkage case, |
1913 | --# are skipped in the case of static linkage thanks to the flag --as-needed. |
1914 | -- |
1915 | - |
1916 | - pkg.generate(name: 'dpdk-libs', |
1917 | - filebase: 'libdpdk-libs', |
1918 | -@@ -34,7 +29,7 @@ Use libdpdk.pc instead of this file to query DPDK compile/link arguments''', |
1919 | - version: meson.project_version(), |
1920 | - subdirs: [get_option('include_subdir_arch'), '.'], |
1921 | - extra_cflags: pkg_extra_cflags, |
1922 | -- libraries: ['-Wl,--as-needed'] + dpdk_libraries, |
1923 | -+ libraries: dpdk_libraries, |
1924 | - libraries_private: dpdk_extra_ldflags) |
1925 | - |
1926 | - platform_flags = [] |
1927 | --- |
1928 | -2.30.0 |
1929 | - |
1930 | diff --git a/debian/patches/lp-1920141-02-Revert-Revert-Revert-build-pkg-config-improve-static.patch b/debian/patches/lp-1920141-02-Revert-Revert-Revert-build-pkg-config-improve-static.patch |
1931 | deleted file mode 100644 |
1932 | index 67fe965..0000000 |
1933 | --- a/debian/patches/lp-1920141-02-Revert-Revert-Revert-build-pkg-config-improve-static.patch |
1934 | +++ /dev/null |
1935 | @@ -1,708 +0,0 @@ |
1936 | -From 44763bcba2cd7853065458db6dd214b47ac91a1c Mon Sep 17 00:00:00 2001 |
1937 | -From: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
1938 | -Date: Mon, 22 Mar 2021 10:56:06 +0100 |
1939 | -Subject: [PATCH 2/7] Revert "Revert "Revert "build/pkg-config: improve static |
1940 | - linking flags""" |
1941 | - |
1942 | -This reverts commit 39586a4cf0e320a15392342411532e398e0c5c8d. |
1943 | -This series changes linking behavior in 19.11.x and thereby should stay |
1944 | -out. It breaks - for example - a rebuild of OVS 2.13 or builds |
1945 | -of later OVS 2.13.x stable releases. |
1946 | - |
1947 | -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1920141 |
1948 | -Forwarded: http://mails.dpdk.org/archives/stable/2021-March/029484.html |
1949 | -Last-Update: 2021-03-22 |
1950 | ---- |
1951 | - buildtools/pkg-config/meson.build | 16 +++----- |
1952 | - .../pkg-config/set-static-linker-flags.py | 38 ------------------- |
1953 | - doc/build-sdk-meson.txt | 2 +- |
1954 | - examples/bbdev_app/Makefile | 2 +- |
1955 | - examples/bond/Makefile | 2 +- |
1956 | - examples/cmdline/Makefile | 2 +- |
1957 | - examples/distributor/Makefile | 2 +- |
1958 | - examples/eventdev_pipeline/Makefile | 2 +- |
1959 | - examples/fips_validation/Makefile | 2 +- |
1960 | - examples/flow_classify/Makefile | 2 +- |
1961 | - examples/flow_filtering/Makefile | 2 +- |
1962 | - examples/helloworld/Makefile | 2 +- |
1963 | - examples/ioat/Makefile | 2 +- |
1964 | - examples/ip_fragmentation/Makefile | 2 +- |
1965 | - examples/ip_pipeline/Makefile | 2 +- |
1966 | - examples/ip_reassembly/Makefile | 2 +- |
1967 | - examples/ipsec-secgw/Makefile | 2 +- |
1968 | - examples/ipv4_multicast/Makefile | 2 +- |
1969 | - examples/kni/Makefile | 2 +- |
1970 | - examples/l2fwd-cat/Makefile | 2 +- |
1971 | - examples/l2fwd-crypto/Makefile | 2 +- |
1972 | - examples/l2fwd-event/Makefile | 2 +- |
1973 | - examples/l2fwd-jobstats/Makefile | 2 +- |
1974 | - examples/l2fwd-keepalive/Makefile | 2 +- |
1975 | - examples/l2fwd/Makefile | 2 +- |
1976 | - examples/l3fwd-acl/Makefile | 2 +- |
1977 | - examples/l3fwd-power/Makefile | 2 +- |
1978 | - examples/l3fwd/Makefile | 2 +- |
1979 | - examples/link_status_interrupt/Makefile | 2 +- |
1980 | - examples/ntb/Makefile | 2 +- |
1981 | - examples/packet_ordering/Makefile | 2 +- |
1982 | - examples/ptpclient/Makefile | 2 +- |
1983 | - examples/qos_meter/Makefile | 2 +- |
1984 | - examples/qos_sched/Makefile | 2 +- |
1985 | - examples/rxtx_callbacks/Makefile | 2 +- |
1986 | - examples/service_cores/Makefile | 2 +- |
1987 | - examples/skeleton/Makefile | 2 +- |
1988 | - examples/tep_termination/Makefile | 2 +- |
1989 | - examples/timer/Makefile | 2 +- |
1990 | - examples/vdpa/Makefile | 2 +- |
1991 | - examples/vhost/Makefile | 2 +- |
1992 | - examples/vhost_blk/Makefile | 2 +- |
1993 | - examples/vhost_crypto/Makefile | 2 +- |
1994 | - examples/vmdq/Makefile | 2 +- |
1995 | - examples/vmdq_dcb/Makefile | 2 +- |
1996 | - 45 files changed, 49 insertions(+), 91 deletions(-) |
1997 | - delete mode 100644 buildtools/pkg-config/set-static-linker-flags.py |
1998 | - |
1999 | -diff --git a/buildtools/pkg-config/meson.build b/buildtools/pkg-config/meson.build |
2000 | -index 63a76b56d3..ccb34dcab3 100644 |
2001 | ---- a/buildtools/pkg-config/meson.build |
2002 | -+++ b/buildtools/pkg-config/meson.build |
2003 | -@@ -1,6 +1,10 @@ |
2004 | - # SPDX-License-Identifier: BSD-3-Clause |
2005 | - # Copyright(c) 2020 Intel Corporation |
2006 | - |
2007 | -+# for static builds, include the drivers as libs and we need to "whole-archive" |
2008 | -+# them. |
2009 | -+dpdk_drivers = ['-Wl,--whole-archive'] + dpdk_drivers + ['-Wl,--no-whole-archive'] |
2010 | -+ |
2011 | - pkg = import('pkgconfig') |
2012 | - pkg_extra_cflags = ['-include', 'rte_config.h'] + machine_args |
2013 | - if is_freebsd |
2014 | -@@ -18,9 +22,6 @@ endif |
2015 | - # and those need to come *before* the regular libraries (Libs field). |
2016 | - # This requirement is satisfied by moving the regular libs in a separate file |
2017 | - # included in the field Requires (after Libs.private). |
2018 | --# Another requirement is to allow linking dependencies as shared libraries, |
2019 | --# while linking static DPDK libraries and drivers. It is satisfied by |
2020 | --# listing the static files in Libs.private with the explicit syntax -l:libfoo.a. |
2021 | - |
2022 | - pkg.generate(name: 'dpdk-libs', |
2023 | - filebase: 'libdpdk-libs', |
2024 | -@@ -44,11 +45,6 @@ Note that CFLAGS might contain an -march flag higher than typical baseline. |
2025 | - This is required for a number of static inline functions in the public headers.''', |
2026 | - requires: ['libdpdk-libs', libbsd], # may need libbsd for string funcs |
2027 | - # if libbsd is not enabled, then this is blank |
2028 | -- libraries_private: ['-Wl,--whole-archive'] + |
2029 | -- dpdk_drivers + dpdk_static_libraries + |
2030 | -- ['-Wl,--no-whole-archive'] + platform_flags |
2031 | -+ libraries_private: dpdk_drivers + dpdk_static_libraries + |
2032 | -+ ['-Wl,-Bdynamic'] + platform_flags |
2033 | - ) |
2034 | -- |
2035 | --# For static linking with dependencies as shared libraries, |
2036 | --# the internal static libraries must be flagged explicitly. |
2037 | --run_command(py3, 'set-static-linker-flags.py', check: true) |
2038 | -diff --git a/buildtools/pkg-config/set-static-linker-flags.py b/buildtools/pkg-config/set-static-linker-flags.py |
2039 | -deleted file mode 100644 |
2040 | -index 2745db34c2..0000000000 |
2041 | ---- a/buildtools/pkg-config/set-static-linker-flags.py |
2042 | -+++ /dev/null |
2043 | -@@ -1,38 +0,0 @@ |
2044 | --#!/usr/bin/env python3 |
2045 | --# SPDX-License-Identifier: BSD-3-Clause |
2046 | --# Copyright(c) 2020 Intel Corporation |
2047 | -- |
2048 | --# Script to fix flags for static linking in pkgconfig files from meson |
2049 | --# Should be called from meson build itself |
2050 | --import os |
2051 | --import sys |
2052 | -- |
2053 | -- |
2054 | --def fix_ldflag(f): |
2055 | -- if not f.startswith('-lrte_'): |
2056 | -- return f |
2057 | -- return '-l:lib' + f[2:] + '.a' |
2058 | -- |
2059 | -- |
2060 | --def fix_libs_private(line): |
2061 | -- if not line.startswith('Libs.private'): |
2062 | -- return line |
2063 | -- ldflags = [fix_ldflag(flag) for flag in line.split()] |
2064 | -- return ' '.join(ldflags) + '\n' |
2065 | -- |
2066 | -- |
2067 | --def process_pc_file(filepath): |
2068 | -- print('Processing', filepath) |
2069 | -- with open(filepath) as src: |
2070 | -- lines = src.readlines() |
2071 | -- with open(filepath, 'w') as dst: |
2072 | -- dst.writelines([fix_libs_private(line) for line in lines]) |
2073 | -- |
2074 | -- |
2075 | --if 'MESON_BUILD_ROOT' not in os.environ: |
2076 | -- print('This script must be called from a meson build environment') |
2077 | -- sys.exit(1) |
2078 | --for root, dirs, files in os.walk(os.environ['MESON_BUILD_ROOT']): |
2079 | -- pc_files = [f for f in files if f.endswith('.pc')] |
2080 | -- for f in pc_files: |
2081 | -- process_pc_file(os.path.join(root, f)) |
2082 | -diff --git a/doc/build-sdk-meson.txt b/doc/build-sdk-meson.txt |
2083 | -index 8fb60a7c11..61c8e3515c 100644 |
2084 | ---- a/doc/build-sdk-meson.txt |
2085 | -+++ b/doc/build-sdk-meson.txt |
2086 | -@@ -190,7 +190,7 @@ From examples/helloworld/Makefile:: |
2087 | - PC_FILE := $(shell pkg-config --path libdpdk) |
2088 | - CFLAGS += -O3 $(shell pkg-config --cflags libdpdk) |
2089 | - LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk) |
2090 | -- LDFLAGS_STATIC = $(shell pkg-config --static --libs libdpdk) |
2091 | -+ LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk) |
2092 | - |
2093 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2094 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2095 | -diff --git a/examples/bbdev_app/Makefile b/examples/bbdev_app/Makefile |
2096 | -index 3c8eb75a4e..ead3f016b8 100644 |
2097 | ---- a/examples/bbdev_app/Makefile |
2098 | -+++ b/examples/bbdev_app/Makefile |
2099 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2100 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2101 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2102 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2103 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2104 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2105 | - |
2106 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2107 | - |
2108 | -diff --git a/examples/bond/Makefile b/examples/bond/Makefile |
2109 | -index 4e4289e151..2030ca410a 100644 |
2110 | ---- a/examples/bond/Makefile |
2111 | -+++ b/examples/bond/Makefile |
2112 | -@@ -24,7 +24,7 @@ PKGCONF ?= pkg-config |
2113 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2114 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2115 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2116 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2117 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2118 | - |
2119 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2120 | - |
2121 | -diff --git a/examples/cmdline/Makefile b/examples/cmdline/Makefile |
2122 | -index 9418b50b87..0b6b54540a 100644 |
2123 | ---- a/examples/cmdline/Makefile |
2124 | -+++ b/examples/cmdline/Makefile |
2125 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2126 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2127 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2128 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2129 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2130 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2131 | - |
2132 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2133 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2134 | -diff --git a/examples/distributor/Makefile b/examples/distributor/Makefile |
2135 | -index 5253780793a..4192d8a4ae 100644 |
2136 | ---- a/examples/distributor/Makefile |
2137 | -+++ b/examples/distributor/Makefile |
2138 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2139 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2140 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2141 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2142 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2143 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2144 | - |
2145 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2146 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2147 | -diff --git a/examples/eventdev_pipeline/Makefile b/examples/eventdev_pipeline/Makefile |
2148 | -index 95a8d0884a..96cd244378 100644 |
2149 | ---- a/examples/eventdev_pipeline/Makefile |
2150 | -+++ b/examples/eventdev_pipeline/Makefile |
2151 | -@@ -24,7 +24,7 @@ PKGCONF ?= pkg-config |
2152 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2153 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2154 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2155 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2156 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2157 | - |
2158 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2159 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2160 | -diff --git a/examples/fips_validation/Makefile b/examples/fips_validation/Makefile |
2161 | -index 5bcf1872c4..e5ae22b521 100644 |
2162 | ---- a/examples/fips_validation/Makefile |
2163 | -+++ b/examples/fips_validation/Makefile |
2164 | -@@ -31,7 +31,7 @@ PKGCONF ?= pkg-config |
2165 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2166 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2167 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2168 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2169 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2170 | - |
2171 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2172 | - |
2173 | -diff --git a/examples/flow_classify/Makefile b/examples/flow_classify/Makefile |
2174 | -index 161d576b60..6864941b3e 100644 |
2175 | ---- a/examples/flow_classify/Makefile |
2176 | -+++ b/examples/flow_classify/Makefile |
2177 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2178 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2179 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2180 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2181 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2182 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2183 | - |
2184 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2185 | - |
2186 | -diff --git a/examples/flow_filtering/Makefile b/examples/flow_filtering/Makefile |
2187 | -index 0ce20d3485..6c51c0b7a0 100644 |
2188 | ---- a/examples/flow_filtering/Makefile |
2189 | -+++ b/examples/flow_filtering/Makefile |
2190 | -@@ -20,7 +20,7 @@ PKGCONF ?= pkg-config |
2191 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2192 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2193 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2194 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2195 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2196 | - |
2197 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2198 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2199 | -diff --git a/examples/helloworld/Makefile b/examples/helloworld/Makefile |
2200 | -index 9a07f89efc..16d82b02f0 100644 |
2201 | ---- a/examples/helloworld/Makefile |
2202 | -+++ b/examples/helloworld/Makefile |
2203 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2204 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2205 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2206 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2207 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2208 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2209 | - |
2210 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2211 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2212 | -diff --git a/examples/ioat/Makefile b/examples/ioat/Makefile |
2213 | -index dd4930136e..ef63f5d689 100644 |
2214 | ---- a/examples/ioat/Makefile |
2215 | -+++ b/examples/ioat/Makefile |
2216 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2217 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2218 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2219 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2220 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2221 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2222 | - |
2223 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2224 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2225 | -diff --git a/examples/ip_fragmentation/Makefile b/examples/ip_fragmentation/Makefile |
2226 | -index d200cc627d..ede0c4f02b 100644 |
2227 | ---- a/examples/ip_fragmentation/Makefile |
2228 | -+++ b/examples/ip_fragmentation/Makefile |
2229 | -@@ -23,7 +23,7 @@ PKGCONF ?= pkg-config |
2230 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2231 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2232 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2233 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2234 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2235 | - |
2236 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2237 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2238 | -diff --git a/examples/ip_pipeline/Makefile b/examples/ip_pipeline/Makefile |
2239 | -index b8e086267b..1e404ff5d0 100644 |
2240 | ---- a/examples/ip_pipeline/Makefile |
2241 | -+++ b/examples/ip_pipeline/Makefile |
2242 | -@@ -35,7 +35,7 @@ PKGCONF ?= pkg-config |
2243 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2244 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2245 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2246 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2247 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2248 | - |
2249 | - CFLAGS += -I. -DALLOW_EXPERIMENTAL_API -D_GNU_SOURCE |
2250 | - |
2251 | -diff --git a/examples/ip_reassembly/Makefile b/examples/ip_reassembly/Makefile |
2252 | -index c7424da2b7..3f2888b338 100644 |
2253 | ---- a/examples/ip_reassembly/Makefile |
2254 | -+++ b/examples/ip_reassembly/Makefile |
2255 | -@@ -23,7 +23,7 @@ PKGCONF ?= pkg-config |
2256 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2257 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2258 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2259 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2260 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2261 | - |
2262 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2263 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2264 | -diff --git a/examples/ipsec-secgw/Makefile b/examples/ipsec-secgw/Makefile |
2265 | -index 38c456daa2..a4977f61f8 100644 |
2266 | ---- a/examples/ipsec-secgw/Makefile |
2267 | -+++ b/examples/ipsec-secgw/Makefile |
2268 | -@@ -33,7 +33,7 @@ PKGCONF ?= pkg-config |
2269 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2270 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2271 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2272 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2273 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2274 | - |
2275 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2276 | - |
2277 | -diff --git a/examples/ipv4_multicast/Makefile b/examples/ipv4_multicast/Makefile |
2278 | -index 5e34bbba00..92d3db0f4d 100644 |
2279 | ---- a/examples/ipv4_multicast/Makefile |
2280 | -+++ b/examples/ipv4_multicast/Makefile |
2281 | -@@ -23,7 +23,7 @@ PKGCONF ?= pkg-config |
2282 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2283 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2284 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2285 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2286 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2287 | - |
2288 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2289 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2290 | -diff --git a/examples/kni/Makefile b/examples/kni/Makefile |
2291 | -index 10b42891da..f687765510 100644 |
2292 | ---- a/examples/kni/Makefile |
2293 | -+++ b/examples/kni/Makefile |
2294 | -@@ -23,7 +23,7 @@ PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2295 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2296 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2297 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2298 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2299 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2300 | - |
2301 | - LDFLAGS += -pthread |
2302 | - |
2303 | -diff --git a/examples/l2fwd-cat/Makefile b/examples/l2fwd-cat/Makefile |
2304 | -index e8fdc46d74..b0e53c37e8 100644 |
2305 | ---- a/examples/l2fwd-cat/Makefile |
2306 | -+++ b/examples/l2fwd-cat/Makefile |
2307 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2308 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2309 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2310 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2311 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2312 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2313 | - |
2314 | - LDFLAGS += -lpqos |
2315 | - |
2316 | -diff --git a/examples/l2fwd-crypto/Makefile b/examples/l2fwd-crypto/Makefile |
2317 | -index cafe778fc6..7c170cfb53 100644 |
2318 | ---- a/examples/l2fwd-crypto/Makefile |
2319 | -+++ b/examples/l2fwd-crypto/Makefile |
2320 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2321 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2322 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2323 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2324 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2325 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2326 | - |
2327 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2328 | - CONFIG_DEFINES = $(shell $(CC) $(CFLAGS) -dM -E - < /dev/null) |
2329 | -diff --git a/examples/l2fwd-event/Makefile b/examples/l2fwd-event/Makefile |
2330 | -index bf0ee890d5..4cdae36f17 100644 |
2331 | ---- a/examples/l2fwd-event/Makefile |
2332 | -+++ b/examples/l2fwd-event/Makefile |
2333 | -@@ -28,7 +28,7 @@ PKGCONF ?= pkg-config |
2334 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2335 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2336 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2337 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2338 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2339 | - |
2340 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2341 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2342 | -diff --git a/examples/l2fwd-jobstats/Makefile b/examples/l2fwd-jobstats/Makefile |
2343 | -index c26803909f..73c91faa8d 100644 |
2344 | ---- a/examples/l2fwd-jobstats/Makefile |
2345 | -+++ b/examples/l2fwd-jobstats/Makefile |
2346 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2347 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2348 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2349 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2350 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2351 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2352 | - |
2353 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2354 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2355 | -diff --git a/examples/l2fwd-keepalive/Makefile b/examples/l2fwd-keepalive/Makefile |
2356 | -index ea3a9cbbf3..94d1e58bb5 100644 |
2357 | ---- a/examples/l2fwd-keepalive/Makefile |
2358 | -+++ b/examples/l2fwd-keepalive/Makefile |
2359 | -@@ -24,7 +24,7 @@ PKGCONF ?= pkg-config |
2360 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2361 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2362 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2363 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2364 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2365 | - |
2366 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2367 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2368 | -diff --git a/examples/l2fwd/Makefile b/examples/l2fwd/Makefile |
2369 | -index 15105ac57e..8b7b26cb90 100644 |
2370 | ---- a/examples/l2fwd/Makefile |
2371 | -+++ b/examples/l2fwd/Makefile |
2372 | -@@ -24,7 +24,7 @@ CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2373 | - # Add flag to allow experimental API as l2fwd uses rte_ethdev_set_ptype API |
2374 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2375 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2376 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2377 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2378 | - |
2379 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2380 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2381 | -diff --git a/examples/l3fwd-acl/Makefile b/examples/l3fwd-acl/Makefile |
2382 | -index 156dc19606..d9909584b1 100644 |
2383 | ---- a/examples/l3fwd-acl/Makefile |
2384 | -+++ b/examples/l3fwd-acl/Makefile |
2385 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2386 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2387 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2388 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2389 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2390 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2391 | - |
2392 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2393 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2394 | -diff --git a/examples/l3fwd-power/Makefile b/examples/l3fwd-power/Makefile |
2395 | -index 74441f98cf..729d49639b 100644 |
2396 | ---- a/examples/l3fwd-power/Makefile |
2397 | -+++ b/examples/l3fwd-power/Makefile |
2398 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2399 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2400 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2401 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2402 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2403 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2404 | - |
2405 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2406 | - |
2407 | -diff --git a/examples/l3fwd/Makefile b/examples/l3fwd/Makefile |
2408 | -index 38a370c2cf..b2dbf26075 100644 |
2409 | ---- a/examples/l3fwd/Makefile |
2410 | -+++ b/examples/l3fwd/Makefile |
2411 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2412 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2413 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2414 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2415 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2416 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2417 | - |
2418 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2419 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2420 | -diff --git a/examples/link_status_interrupt/Makefile b/examples/link_status_interrupt/Makefile |
2421 | -index 879ee7384d..4f02a89013 100644 |
2422 | ---- a/examples/link_status_interrupt/Makefile |
2423 | -+++ b/examples/link_status_interrupt/Makefile |
2424 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2425 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2426 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2427 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2428 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2429 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2430 | - |
2431 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2432 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2433 | -diff --git a/examples/ntb/Makefile b/examples/ntb/Makefile |
2434 | -index f41ccfac27..bdc0d6e80f 100644 |
2435 | ---- a/examples/ntb/Makefile |
2436 | -+++ b/examples/ntb/Makefile |
2437 | -@@ -26,7 +26,7 @@ LDFLAGS += -pthread |
2438 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2439 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2440 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2441 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2442 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2443 | - |
2444 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2445 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2446 | -diff --git a/examples/packet_ordering/Makefile b/examples/packet_ordering/Makefile |
2447 | -index 1e50389421..261b7f06a8 100644 |
2448 | ---- a/examples/packet_ordering/Makefile |
2449 | -+++ b/examples/packet_ordering/Makefile |
2450 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2451 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2452 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2453 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2454 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2455 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2456 | - |
2457 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2458 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2459 | -diff --git a/examples/ptpclient/Makefile b/examples/ptpclient/Makefile |
2460 | -index 9e47a60117..82d72b3e31 100644 |
2461 | ---- a/examples/ptpclient/Makefile |
2462 | -+++ b/examples/ptpclient/Makefile |
2463 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2464 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2465 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2466 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2467 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2468 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2469 | - |
2470 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2471 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2472 | -diff --git a/examples/qos_meter/Makefile b/examples/qos_meter/Makefile |
2473 | -index f733facaeb..7c2bf88a90 100644 |
2474 | ---- a/examples/qos_meter/Makefile |
2475 | -+++ b/examples/qos_meter/Makefile |
2476 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2477 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2478 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2479 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2480 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2481 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2482 | - |
2483 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2484 | - |
2485 | -diff --git a/examples/qos_sched/Makefile b/examples/qos_sched/Makefile |
2486 | -index 736ac00a36..525061ca07 100644 |
2487 | ---- a/examples/qos_sched/Makefile |
2488 | -+++ b/examples/qos_sched/Makefile |
2489 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2490 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2491 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2492 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2493 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2494 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2495 | - |
2496 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2497 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2498 | -diff --git a/examples/rxtx_callbacks/Makefile b/examples/rxtx_callbacks/Makefile |
2499 | -index eecdcada3e..418f47c4d7 100644 |
2500 | ---- a/examples/rxtx_callbacks/Makefile |
2501 | -+++ b/examples/rxtx_callbacks/Makefile |
2502 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2503 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2504 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2505 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2506 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2507 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2508 | - |
2509 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2510 | - |
2511 | -diff --git a/examples/service_cores/Makefile b/examples/service_cores/Makefile |
2512 | -index b8669fdf7e..c47055813e 100644 |
2513 | ---- a/examples/service_cores/Makefile |
2514 | -+++ b/examples/service_cores/Makefile |
2515 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2516 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2517 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2518 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2519 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2520 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2521 | - |
2522 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2523 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2524 | -diff --git a/examples/skeleton/Makefile b/examples/skeleton/Makefile |
2525 | -index 5059f3123f..2c29004d79 100644 |
2526 | ---- a/examples/skeleton/Makefile |
2527 | -+++ b/examples/skeleton/Makefile |
2528 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2529 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2530 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2531 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2532 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2533 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2534 | - |
2535 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2536 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2537 | -diff --git a/examples/tep_termination/Makefile b/examples/tep_termination/Makefile |
2538 | -index 548ca3cee3..645112498d 100644 |
2539 | ---- a/examples/tep_termination/Makefile |
2540 | -+++ b/examples/tep_termination/Makefile |
2541 | -@@ -24,7 +24,7 @@ PKGCONF ?= pkg-config |
2542 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2543 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2544 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2545 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2546 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2547 | - |
2548 | - CFLAGS += -Wno-deprecated-declarations |
2549 | - |
2550 | -diff --git a/examples/timer/Makefile b/examples/timer/Makefile |
2551 | -index b34c8baa6b..bf86339ab7 100644 |
2552 | ---- a/examples/timer/Makefile |
2553 | -+++ b/examples/timer/Makefile |
2554 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2555 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2556 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2557 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2558 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2559 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2560 | - |
2561 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2562 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2563 | -diff --git a/examples/vdpa/Makefile b/examples/vdpa/Makefile |
2564 | -index bc0b6793e6..6a25497cd8 100644 |
2565 | ---- a/examples/vdpa/Makefile |
2566 | -+++ b/examples/vdpa/Makefile |
2567 | -@@ -23,7 +23,7 @@ PKGCONF ?= pkg-config |
2568 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2569 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2570 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2571 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2572 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2573 | - |
2574 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2575 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2576 | -diff --git a/examples/vhost/Makefile b/examples/vhost/Makefile |
2577 | -index ef6f3550f3..f2b1615418 100644 |
2578 | ---- a/examples/vhost/Makefile |
2579 | -+++ b/examples/vhost/Makefile |
2580 | -@@ -24,7 +24,7 @@ PKGCONF ?= pkg-config |
2581 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2582 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2583 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2584 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2585 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2586 | - |
2587 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2588 | - |
2589 | -diff --git a/examples/vhost_blk/Makefile b/examples/vhost_blk/Makefile |
2590 | -index 3952791784..39244320d8 100644 |
2591 | ---- a/examples/vhost_blk/Makefile |
2592 | -+++ b/examples/vhost_blk/Makefile |
2593 | -@@ -25,7 +25,7 @@ LDFLAGS += -pthread |
2594 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2595 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2596 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2597 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2598 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2599 | - |
2600 | - CFLAGS += -DALLOW_EXPERIMENTAL_API |
2601 | - |
2602 | -diff --git a/examples/vhost_crypto/Makefile b/examples/vhost_crypto/Makefile |
2603 | -index 28e3e4de74..ae8cb81f87 100644 |
2604 | ---- a/examples/vhost_crypto/Makefile |
2605 | -+++ b/examples/vhost_crypto/Makefile |
2606 | -@@ -23,7 +23,7 @@ PKGCONF ?= pkg-config |
2607 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2608 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2609 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2610 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2611 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2612 | - |
2613 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2614 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2615 | -diff --git a/examples/vmdq/Makefile b/examples/vmdq/Makefile |
2616 | -index 7e59e4d658..0767c715a1 100644 |
2617 | ---- a/examples/vmdq/Makefile |
2618 | -+++ b/examples/vmdq/Makefile |
2619 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2620 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2621 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2622 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2623 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2624 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2625 | - |
2626 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2627 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2628 | -diff --git a/examples/vmdq_dcb/Makefile b/examples/vmdq_dcb/Makefile |
2629 | -index 2302577d00..2a9b04143f 100644 |
2630 | ---- a/examples/vmdq_dcb/Makefile |
2631 | -+++ b/examples/vmdq_dcb/Makefile |
2632 | -@@ -22,7 +22,7 @@ PKGCONF ?= pkg-config |
2633 | - PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) |
2634 | - CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) |
2635 | - LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) |
2636 | --LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) |
2637 | -+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) |
2638 | - |
2639 | - build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
2640 | - $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
2641 | --- |
2642 | -2.30.0 |
2643 | - |
2644 | diff --git a/debian/patches/lp-1920141-03-Revert-Revert-Revert-build-pkg-config-output-drivers.patch b/debian/patches/lp-1920141-03-Revert-Revert-Revert-build-pkg-config-output-drivers.patch |
2645 | deleted file mode 100644 |
2646 | index 93b582d..0000000 |
2647 | --- a/debian/patches/lp-1920141-03-Revert-Revert-Revert-build-pkg-config-output-drivers.patch |
2648 | +++ /dev/null |
2649 | @@ -1,74 +0,0 @@ |
2650 | -From d4b956825f34022474bf98cbfde999e87ba940b5 Mon Sep 17 00:00:00 2001 |
2651 | -From: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
2652 | -Date: Mon, 22 Mar 2021 11:19:54 +0100 |
2653 | -Subject: [PATCH 3/7] Revert "Revert "Revert "build/pkg-config: output drivers |
2654 | - first for static build""" |
2655 | - |
2656 | -This reverts commit 906e935a1fd1f6cf01ff12d70c2f040aa91984c6. |
2657 | -This series changes linking behavior in 19.11.x and thereby should stay |
2658 | -out. It breaks - for example - a rebuild of OVS 2.13 or builds |
2659 | -of later OVS 2.13.x stable releases. |
2660 | - |
2661 | -Reverting this drops the two following 19.11.7 changes which need to be |
2662 | -re-created in the new (old) place of meson.build |
2663 | - |
2664 | -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1920141 |
2665 | -Forwarded: http://mails.dpdk.org/archives/stable/2021-March/029484.html |
2666 | -Last-Update: 2021-03-22 |
2667 | ---- |
2668 | - buildtools/pkg-config/meson.build | 36 ++++--------------------------- |
2669 | - 1 file changed, 4 insertions(+), 32 deletions(-) |
2670 | - |
2671 | -diff --git a/buildtools/pkg-config/meson.build b/buildtools/pkg-config/meson.build |
2672 | -index ccb34dcab3..c93711b5e8 100644 |
2673 | ---- a/buildtools/pkg-config/meson.build |
2674 | -+++ b/buildtools/pkg-config/meson.build |
2675 | -@@ -10,41 +10,13 @@ pkg_extra_cflags = ['-include', 'rte_config.h'] + machine_args |
2676 | - if is_freebsd |
2677 | - pkg_extra_cflags += ['-D__BSD_VISIBLE'] |
2678 | - endif |
2679 | -- |
2680 | --# When calling pkg-config --static --libs, pkg-config will always output the |
2681 | --# regular libs first, and then the extra libs from Libs.private field, |
2682 | --# since the assumption is that those are additional dependencies for building |
2683 | --# statically that the .a files depend upon. The output order of .pc fields is: |
2684 | --# Libs Libs.private Requires Requires.private |
2685 | --# The fields Requires* are for package names. |
2686 | --# The flags of the DPDK libraries must be defined in Libs* fields. |
2687 | --# However, the DPDK drivers are linked only in static builds (Libs.private), |
2688 | --# and those need to come *before* the regular libraries (Libs field). |
2689 | --# This requirement is satisfied by moving the regular libs in a separate file |
2690 | --# included in the field Requires (after Libs.private). |
2691 | -- |
2692 | --pkg.generate(name: 'dpdk-libs', |
2693 | -- filebase: 'libdpdk-libs', |
2694 | -- description: '''Internal-only DPDK pkgconfig file. Not for direct use. |
2695 | --Use libdpdk.pc instead of this file to query DPDK compile/link arguments''', |
2696 | -+pkg.generate(name: meson.project_name(), |
2697 | -+ filebase: 'lib' + meson.project_name().to_lower(), |
2698 | - version: meson.project_version(), |
2699 | -- subdirs: [get_option('include_subdir_arch'), '.'], |
2700 | -- extra_cflags: pkg_extra_cflags, |
2701 | - libraries: dpdk_libraries, |
2702 | -- libraries_private: dpdk_extra_ldflags) |
2703 | -- |
2704 | --platform_flags = [] |
2705 | --if not is_windows |
2706 | -- platform_flags += ['-Wl,--export-dynamic'] # ELF only |
2707 | --endif |
2708 | --pkg.generate(name: 'DPDK', # main DPDK pkgconfig file |
2709 | -- filebase: 'libdpdk', |
2710 | -- version: meson.project_version(), |
2711 | - description: '''The Data Plane Development Kit (DPDK). |
2712 | - Note that CFLAGS might contain an -march flag higher than typical baseline. |
2713 | - This is required for a number of static inline functions in the public headers.''', |
2714 | -- requires: ['libdpdk-libs', libbsd], # may need libbsd for string funcs |
2715 | -- # if libbsd is not enabled, then this is blank |
2716 | -- libraries_private: dpdk_drivers + dpdk_static_libraries + |
2717 | -- ['-Wl,-Bdynamic'] + platform_flags |
2718 | -+ subdirs: [get_option('include_subdir_arch'), '.'], |
2719 | -+ extra_cflags: pkg_extra_cflag |
2720 | - ) |
2721 | --- |
2722 | -2.30.0 |
2723 | - |
2724 | diff --git a/debian/patches/lp-1920141-04-Revert-Revert-Revert-build-pkg-config-move-pkg-confi.patch b/debian/patches/lp-1920141-04-Revert-Revert-Revert-build-pkg-config-move-pkg-confi.patch |
2725 | deleted file mode 100644 |
2726 | index d79fc04..0000000 |
2727 | --- a/debian/patches/lp-1920141-04-Revert-Revert-Revert-build-pkg-config-move-pkg-confi.patch |
2728 | +++ /dev/null |
2729 | @@ -1,101 +0,0 @@ |
2730 | -From 9171fe0b7f859c082ca648d2a84af7490dc4f93a Mon Sep 17 00:00:00 2001 |
2731 | -From: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
2732 | -Date: Mon, 22 Mar 2021 11:22:04 +0100 |
2733 | -Subject: [PATCH 4/7] Revert "Revert "Revert "build/pkg-config: move pkg-config |
2734 | - file creation""" |
2735 | - |
2736 | -This reverts commit deebf952394cef1d14912f3dc2fc5121431c16a5. |
2737 | -This series changes linking behavior in 19.11.x and thereby should stay |
2738 | -out. It breaks - for example - a rebuild of OVS 2.13 or builds |
2739 | -of later OVS 2.13.x stable releases. |
2740 | - |
2741 | -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1920141 |
2742 | -Forwarded: http://mails.dpdk.org/archives/stable/2021-March/029484.html |
2743 | -Last-Update: 2021-03-22 |
2744 | ---- |
2745 | - MAINTAINERS | 2 -- |
2746 | - buildtools/pkg-config/meson.build | 22 ---------------------- |
2747 | - meson.build | 25 +++++++++++++++++++++++-- |
2748 | - 3 files changed, 23 insertions(+), 26 deletions(-) |
2749 | - delete mode 100644 buildtools/pkg-config/meson.build |
2750 | - |
2751 | -diff --git a/MAINTAINERS b/MAINTAINERS |
2752 | -index 952ded7b00..75431e333b 100644 |
2753 | ---- a/MAINTAINERS |
2754 | -+++ b/MAINTAINERS |
2755 | -@@ -131,8 +131,6 @@ F: config/rte_config.h |
2756 | - F: buildtools/call-sphinx-build.py |
2757 | - F: buildtools/gen-pmdinfo-cfile.sh |
2758 | - F: buildtools/map_to_def.py |
2759 | --F: buildtools/list-dir-globs.py |
2760 | --F: buildtools/pkg-config/ |
2761 | - F: buildtools/symlink-drivers-solibs.sh |
2762 | - |
2763 | - Public CI |
2764 | -diff --git a/buildtools/pkg-config/meson.build b/buildtools/pkg-config/meson.build |
2765 | -deleted file mode 100644 |
2766 | -index c93711b5e8..0000000000 |
2767 | ---- a/buildtools/pkg-config/meson.build |
2768 | -+++ /dev/null |
2769 | -@@ -1,22 +0,0 @@ |
2770 | --# SPDX-License-Identifier: BSD-3-Clause |
2771 | --# Copyright(c) 2020 Intel Corporation |
2772 | -- |
2773 | --# for static builds, include the drivers as libs and we need to "whole-archive" |
2774 | --# them. |
2775 | --dpdk_drivers = ['-Wl,--whole-archive'] + dpdk_drivers + ['-Wl,--no-whole-archive'] |
2776 | -- |
2777 | --pkg = import('pkgconfig') |
2778 | --pkg_extra_cflags = ['-include', 'rte_config.h'] + machine_args |
2779 | --if is_freebsd |
2780 | -- pkg_extra_cflags += ['-D__BSD_VISIBLE'] |
2781 | --endif |
2782 | --pkg.generate(name: meson.project_name(), |
2783 | -- filebase: 'lib' + meson.project_name().to_lower(), |
2784 | -- version: meson.project_version(), |
2785 | -- libraries: dpdk_libraries, |
2786 | -- description: '''The Data Plane Development Kit (DPDK). |
2787 | --Note that CFLAGS might contain an -march flag higher than typical baseline. |
2788 | --This is required for a number of static inline functions in the public headers.''', |
2789 | -- subdirs: [get_option('include_subdir_arch'), '.'], |
2790 | -- extra_cflags: pkg_extra_cflag |
2791 | --) |
2792 | -diff --git a/meson.build b/meson.build |
2793 | -index 00949de995..58995252bd 100644 |
2794 | ---- a/meson.build |
2795 | -+++ b/meson.build |
2796 | -@@ -64,8 +64,29 @@ configure_file(output: build_cfg, |
2797 | - install_dir: join_paths(get_option('includedir'), |
2798 | - get_option('include_subdir_arch'))) |
2799 | - |
2800 | --# build pkg-config files for dpdk |
2801 | --subdir('buildtools/pkg-config') |
2802 | -+# for static builds, include the drivers as libs and we need to "whole-archive" |
2803 | -+# them. |
2804 | -+dpdk_drivers = ['-Wl,--whole-archive'] + dpdk_drivers + ['-Wl,--no-whole-archive'] |
2805 | -+ |
2806 | -+pkg = import('pkgconfig') |
2807 | -+pkg_extra_cflags = ['-include', 'rte_config.h'] + machine_args |
2808 | -+if is_freebsd |
2809 | -+ pkg_extra_cflags += ['-D__BSD_VISIBLE'] |
2810 | -+endif |
2811 | -+pkg.generate(name: meson.project_name(), |
2812 | -+ filebase: 'lib' + meson.project_name().to_lower(), |
2813 | -+ version: meson.project_version(), |
2814 | -+ libraries: dpdk_libraries, |
2815 | -+ libraries_private: dpdk_drivers + dpdk_static_libraries + |
2816 | -+ ['-Wl,-Bdynamic'] + dpdk_extra_ldflags, |
2817 | -+ requires: libbsd, # apps using rte_string_fns.h may need this if enabled |
2818 | -+ # if libbsd is not enabled, then this is blank |
2819 | -+ description: '''The Data Plane Development Kit (DPDK). |
2820 | -+Note that CFLAGS might contain an -march flag higher than typical baseline. |
2821 | -+This is required for a number of static inline functions in the public headers.''', |
2822 | -+ subdirs: [get_option('include_subdir_arch'), '.'], |
2823 | -+ extra_cflags: pkg_extra_cflags |
2824 | -+) |
2825 | - |
2826 | - # final output, list all the libs and drivers to be built |
2827 | - # this does not affect any part of the build, for information only. |
2828 | --- |
2829 | -2.30.0 |
2830 | - |
2831 | diff --git a/debian/patches/lp-1920141-05-Revert-Revert-Revert-build-always-link-whole-DPDK-st.patch b/debian/patches/lp-1920141-05-Revert-Revert-Revert-build-always-link-whole-DPDK-st.patch |
2832 | deleted file mode 100644 |
2833 | index d250888..0000000 |
2834 | --- a/debian/patches/lp-1920141-05-Revert-Revert-Revert-build-always-link-whole-DPDK-st.patch |
2835 | +++ /dev/null |
2836 | @@ -1,88 +0,0 @@ |
2837 | -From 4fad50ad66b511904ae3729a115e14db4bf2d94e Mon Sep 17 00:00:00 2001 |
2838 | -From: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
2839 | -Date: Mon, 22 Mar 2021 11:25:54 +0100 |
2840 | -Subject: [PATCH 5/7] Revert "Revert "Revert "build: always link whole DPDK |
2841 | - static libraries""" |
2842 | - |
2843 | -This reverts commit a3bd9a34bf9988de641b6e78b825fafb69d2d13f. |
2844 | -This series changes linking behavior in 19.11.x and thereby should stay |
2845 | -out. It breaks - for example - a rebuild of OVS 2.13 or builds |
2846 | -of later OVS 2.13.x stable releases. |
2847 | - |
2848 | -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1920141 |
2849 | -Forwarded: http://mails.dpdk.org/archives/stable/2021-March/029484.html |
2850 | -Last-Update: 2021-03-22 |
2851 | ---- |
2852 | - app/test/meson.build | 2 +- |
2853 | - drivers/meson.build | 2 +- |
2854 | - examples/meson.build | 6 +++--- |
2855 | - lib/meson.build | 2 +- |
2856 | - 4 files changed, 6 insertions(+), 6 deletions(-) |
2857 | - |
2858 | -diff --git a/app/test/meson.build b/app/test/meson.build |
2859 | -index 24fb59f74f..860728bb07 100644 |
2860 | ---- a/app/test/meson.build |
2861 | -+++ b/app/test/meson.build |
2862 | -@@ -391,7 +391,7 @@ test_dep_objs += cc.find_library('execinfo', required: false) |
2863 | - |
2864 | - link_libs = [] |
2865 | - if get_option('default_library') == 'static' |
2866 | -- link_libs = dpdk_static_libraries + dpdk_drivers |
2867 | -+ link_libs = dpdk_drivers |
2868 | - endif |
2869 | - |
2870 | - dpdk_test = executable('dpdk-test', |
2871 | -diff --git a/drivers/meson.build b/drivers/meson.build |
2872 | -index 696079680b..0400d84675 100644 |
2873 | ---- a/drivers/meson.build |
2874 | -+++ b/drivers/meson.build |
2875 | -@@ -198,7 +198,7 @@ foreach class:dpdk_driver_classes |
2876 | - shared_dep = declare_dependency(link_with: shared_lib, |
2877 | - include_directories: includes, |
2878 | - dependencies: shared_deps) |
2879 | -- static_dep = declare_dependency( |
2880 | -+ static_dep = declare_dependency(link_with: static_lib, |
2881 | - include_directories: includes, |
2882 | - dependencies: static_deps) |
2883 | - |
2884 | -diff --git a/examples/meson.build b/examples/meson.build |
2885 | -index 9e081f3fb7..4dc292fbd1 100644 |
2886 | ---- a/examples/meson.build |
2887 | -+++ b/examples/meson.build |
2888 | -@@ -1,9 +1,9 @@ |
2889 | - # SPDX-License-Identifier: BSD-3-Clause |
2890 | - # Copyright(c) 2017-2019 Intel Corporation |
2891 | - |
2892 | --link_whole_libs = [] |
2893 | -+driver_libs = [] |
2894 | - if get_option('default_library') == 'static' |
2895 | -- link_whole_libs = dpdk_static_libraries + dpdk_drivers |
2896 | -+ driver_libs = dpdk_drivers |
2897 | - endif |
2898 | - |
2899 | - execinfo = cc.find_library('execinfo', required: false) |
2900 | -@@ -97,7 +97,7 @@ foreach example: examples |
2901 | - endif |
2902 | - executable('dpdk-' + name, sources, |
2903 | - include_directories: includes, |
2904 | -- link_whole: link_whole_libs, |
2905 | -+ link_whole: driver_libs, |
2906 | - link_args: ldflags, |
2907 | - c_args: cflags, |
2908 | - dependencies: dep_objs) |
2909 | -diff --git a/lib/meson.build b/lib/meson.build |
2910 | -index b60396428c..f8da4f3168 100644 |
2911 | ---- a/lib/meson.build |
2912 | -+++ b/lib/meson.build |
2913 | -@@ -127,7 +127,7 @@ foreach l:libraries |
2914 | - dependencies: static_deps, |
2915 | - include_directories: includes, |
2916 | - install: true) |
2917 | -- static_dep = declare_dependency( |
2918 | -+ static_dep = declare_dependency(link_with: static_lib, |
2919 | - include_directories: includes, |
2920 | - dependencies: static_deps) |
2921 | - |
2922 | --- |
2923 | -2.30.0 |
2924 | - |
2925 | diff --git a/debian/patches/lp-1920141-06-Revert-Revert-Revert-devtools-test-static-linkage-wi.patch b/debian/patches/lp-1920141-06-Revert-Revert-Revert-devtools-test-static-linkage-wi.patch |
2926 | deleted file mode 100644 |
2927 | index a040740..0000000 |
2928 | --- a/debian/patches/lp-1920141-06-Revert-Revert-Revert-devtools-test-static-linkage-wi.patch |
2929 | +++ /dev/null |
2930 | @@ -1,33 +0,0 @@ |
2931 | -From b6473c5a0b7f8fa314d4fd47d6c0931da8c8d083 Mon Sep 17 00:00:00 2001 |
2932 | -From: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
2933 | -Date: Mon, 22 Mar 2021 11:26:09 +0100 |
2934 | -Subject: [PATCH 6/7] Revert "Revert "Revert "devtools: test static linkage |
2935 | - with pkg-config""" |
2936 | - |
2937 | -This reverts commit d4bc12443836ccb8a5032b34f1d412b33a1d2384. |
2938 | -This series changes linking behavior in 19.11.x and thereby should stay |
2939 | -out. It breaks - for example - a rebuild of OVS 2.13 or builds |
2940 | -of later OVS 2.13.x stable releases. |
2941 | - |
2942 | -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1920141 |
2943 | -Forwarded: http://mails.dpdk.org/archives/stable/2021-March/029484.html |
2944 | -Last-Update: 2021-03-22 |
2945 | ---- |
2946 | - devtools/test-meson-builds.sh | 2 +- |
2947 | - 1 file changed, 1 insertion(+), 1 deletion(-) |
2948 | - |
2949 | -diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh |
2950 | -index 8678a3d824..47fdb9dfb5 100755 |
2951 | ---- a/devtools/test-meson-builds.sh |
2952 | -+++ b/devtools/test-meson-builds.sh |
2953 | -@@ -146,6 +146,6 @@ if pkg-config --define-prefix libdpdk >/dev/null 2>&1; then |
2954 | - export PKGCONF="pkg-config --define-prefix" |
2955 | - for example in cmdline helloworld l2fwd l3fwd skeleton timer; do |
2956 | - echo "## Building $example" |
2957 | -- $MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example clean shared static |
2958 | -+ $MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example clean all |
2959 | - done |
2960 | - fi |
2961 | --- |
2962 | -2.30.0 |
2963 | - |
2964 | diff --git a/debian/patches/lp-1920141-07-Regenerate-meson.build-changes-required-due-to-rever.patch b/debian/patches/lp-1920141-07-Regenerate-meson.build-changes-required-due-to-rever.patch |
2965 | deleted file mode 100644 |
2966 | index e4649f7..0000000 |
2967 | --- a/debian/patches/lp-1920141-07-Regenerate-meson.build-changes-required-due-to-rever.patch |
2968 | +++ /dev/null |
2969 | @@ -1,50 +0,0 @@ |
2970 | -From 2604819f25ff15066d5c67bc4ae340183cd4eef1 Mon Sep 17 00:00:00 2001 |
2971 | -From: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
2972 | -Date: Mon, 22 Mar 2021 11:29:01 +0100 |
2973 | -Subject: [PATCH 7/7] Regenerate meson.build changes required due to reverts |
2974 | - |
2975 | -Due to a series of re-re-reverts by this case: |
2976 | -http://mails.dpdk.org/archives/stable/2021-March/029418.html |
2977 | -http://mails.dpdk.org/archives/stable/2020-September/024796.html |
2978 | -The two changes of: |
2979 | - 3f33f5056 build: fix plugin load on static build |
2980 | - 4a2baf099 build: fix linker flags on Windows |
2981 | -would have been lost. |
2982 | -Re-apply them here to have the reverts only remove what was added by them. |
2983 | - |
2984 | -Fixes: 16ade738fd0d ("app/testpmd: build with meson") |
2985 | -Fixes: 89f0711f9ddf ("examples: build some samples with meson") |
2986 | -Fixes: b031e13d7f0d ("build: fix plugin load on static build") |
2987 | - |
2988 | -Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
2989 | - |
2990 | -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1920141 |
2991 | -Forwarded: http://mails.dpdk.org/archives/stable/2021-March/029484.html |
2992 | -Last-Update: 2021-03-22 |
2993 | ---- |
2994 | - meson.build | 7 ++++++- |
2995 | - 1 file changed, 6 insertions(+), 1 deletion(-) |
2996 | - |
2997 | -diff --git a/meson.build b/meson.build |
2998 | -index 58995252bd..01bbb556ec 100644 |
2999 | ---- a/meson.build |
3000 | -+++ b/meson.build |
3001 | -@@ -64,9 +64,14 @@ configure_file(output: build_cfg, |
3002 | - install_dir: join_paths(get_option('includedir'), |
3003 | - get_option('include_subdir_arch'))) |
3004 | - |
3005 | -+platform_flags = [] |
3006 | -+if not is_windows |
3007 | -+ platform_flags += ['-Wl,--export-dynamic'] # ELF only |
3008 | -+endif |
3009 | -+ |
3010 | - # for static builds, include the drivers as libs and we need to "whole-archive" |
3011 | - # them. |
3012 | --dpdk_drivers = ['-Wl,--whole-archive'] + dpdk_drivers + ['-Wl,--no-whole-archive'] |
3013 | -+dpdk_drivers = ['-Wl,--whole-archive'] + dpdk_drivers + ['-Wl,--no-whole-archive'] + platform_flags |
3014 | - |
3015 | - pkg = import('pkgconfig') |
3016 | - pkg_extra_cflags = ['-include', 'rte_config.h'] + machine_args |
3017 | --- |
3018 | -2.30.0 |
3019 | - |
3020 | diff --git a/debian/patches/series b/debian/patches/series |
3021 | index eac907e..24934be 100644 |
3022 | --- a/debian/patches/series |
3023 | +++ b/debian/patches/series |
3024 | @@ -1,8 +1,2 @@ |
3025 | revert-net-ipn3ke-fix-meson-build.patch |
3026 | -lp-1920141-01-Revert-Revert-Revert-build-pkg-config-prevent-overli.patch |
3027 | -lp-1920141-02-Revert-Revert-Revert-build-pkg-config-improve-static.patch |
3028 | -lp-1920141-03-Revert-Revert-Revert-build-pkg-config-output-drivers.patch |
3029 | -lp-1920141-04-Revert-Revert-Revert-build-pkg-config-move-pkg-confi.patch |
3030 | -lp-1920141-05-Revert-Revert-Revert-build-always-link-whole-DPDK-st.patch |
3031 | -lp-1920141-06-Revert-Revert-Revert-devtools-test-static-linkage-wi.patch |
3032 | -lp-1920141-07-Regenerate-meson.build-changes-required-due-to-rever.patch |
3033 | +ubuntu/lp-1940957-net-i40e-support-25G-AOC-ACC-cables.patch |
3034 | diff --git a/debian/patches/ubuntu/lp-1940957-net-i40e-support-25G-AOC-ACC-cables.patch b/debian/patches/ubuntu/lp-1940957-net-i40e-support-25G-AOC-ACC-cables.patch |
3035 | new file mode 100644 |
3036 | index 0000000..8606792 |
3037 | --- /dev/null |
3038 | +++ b/debian/patches/ubuntu/lp-1940957-net-i40e-support-25G-AOC-ACC-cables.patch |
3039 | @@ -0,0 +1,42 @@ |
3040 | +From f81d60e607bb8c13fcb13450e85d74721f1d9c8f Mon Sep 17 00:00:00 2001 |
3041 | +From: Yury Kylulin <yury.kylulin@intel.com> |
3042 | +Date: Tue, 13 Apr 2021 18:29:50 +0300 |
3043 | +Subject: [PATCH] net/i40e: support 25G AOC/ACC cables |
3044 | + |
3045 | +[ upstream commit b1daa3461429e7674206a714c17adca65e9b44b4 ] |
3046 | + |
3047 | +Enable additional PHY types (25G-AOC and 25G-ACC) for set PHY config |
3048 | +command. |
3049 | + |
3050 | +Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/dpdk/+bug/1940957 |
3051 | +Cc: stable@dpdk.org |
3052 | + |
3053 | +Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> |
3054 | +Tested-by: Ashish Paul <apaul@juniper.net> |
3055 | +Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
3056 | + |
3057 | +Origin: upstream, https://github.com/cpaelzer/dpdk-stable-queue/commit/f81d60e607bb8c13fcb13450e85d74721f1d9c8f |
3058 | +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1940957 |
3059 | +Last-Update: 2021-09-06 |
3060 | + |
3061 | +--- |
3062 | + drivers/net/i40e/i40e_ethdev.c | 3 ++- |
3063 | + 1 file changed, 2 insertions(+), 1 deletion(-) |
3064 | + |
3065 | +diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c |
3066 | +index 508f90595f..0c896ea915 100644 |
3067 | +--- a/drivers/net/i40e/i40e_ethdev.c |
3068 | ++++ b/drivers/net/i40e/i40e_ethdev.c |
3069 | +@@ -2264,7 +2264,8 @@ i40e_phy_conf_link(struct i40e_hw *hw, |
3070 | + phy_conf.phy_type = is_up ? cpu_to_le32(phy_type_mask) : 0; |
3071 | + phy_conf.phy_type_ext = is_up ? (I40E_AQ_PHY_TYPE_EXT_25G_KR | |
3072 | + I40E_AQ_PHY_TYPE_EXT_25G_CR | I40E_AQ_PHY_TYPE_EXT_25G_SR | |
3073 | +- I40E_AQ_PHY_TYPE_EXT_25G_LR) : 0; |
3074 | ++ I40E_AQ_PHY_TYPE_EXT_25G_LR | I40E_AQ_PHY_TYPE_EXT_25G_AOC | |
3075 | ++ I40E_AQ_PHY_TYPE_EXT_25G_ACC) : 0; |
3076 | + phy_conf.fec_config = phy_ab.fec_cfg_curr_mod_ext_info; |
3077 | + phy_conf.eee_capability = phy_ab.eee_capability; |
3078 | + phy_conf.eeer = phy_ab.eeer_val; |
3079 | +-- |
3080 | +2.32.0 |
3081 | + |
3082 | diff --git a/devtools/check-maintainers.sh b/devtools/check-maintainers.sh |
3083 | index 85a300f..49d38fb 100755 |
3084 | --- a/devtools/check-maintainers.sh |
3085 | +++ b/devtools/check-maintainers.sh |
3086 | @@ -15,10 +15,10 @@ files () # <path> [<path> ...] |
3087 | if [ -z "$1" ] ; then |
3088 | return |
3089 | fi |
3090 | - if [ -d .git ] ; then |
3091 | + if [ -r .git ] ; then |
3092 | git ls-files "$1" |
3093 | else |
3094 | - find "$1" -type f | |
3095 | + find $1 -type f | |
3096 | sed 's,^\./,,' |
3097 | fi | |
3098 | # if not ended by / |
3099 | diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh |
3100 | index 8678a3d..47fdb9d 100755 |
3101 | --- a/devtools/test-meson-builds.sh |
3102 | +++ b/devtools/test-meson-builds.sh |
3103 | @@ -146,6 +146,6 @@ if pkg-config --define-prefix libdpdk >/dev/null 2>&1; then |
3104 | export PKGCONF="pkg-config --define-prefix" |
3105 | for example in cmdline helloworld l2fwd l3fwd skeleton timer; do |
3106 | echo "## Building $example" |
3107 | - $MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example clean shared static |
3108 | + $MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example clean all |
3109 | done |
3110 | fi |
3111 | diff --git a/doc/build-sdk-meson.txt b/doc/build-sdk-meson.txt |
3112 | index 8fb60a7..61c8e35 100644 |
3113 | --- a/doc/build-sdk-meson.txt |
3114 | +++ b/doc/build-sdk-meson.txt |
3115 | @@ -190,7 +190,7 @@ From examples/helloworld/Makefile:: |
3116 | PC_FILE := $(shell pkg-config --path libdpdk) |
3117 | CFLAGS += -O3 $(shell pkg-config --cflags libdpdk) |
3118 | LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk) |
3119 | - LDFLAGS_STATIC = $(shell pkg-config --static --libs libdpdk) |
3120 | + LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk) |
3121 | |
3122 | build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build |
3123 | $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) |
3124 | diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst b/doc/guides/bbdevs/fpga_lte_fec.rst |
3125 | index 206b6f4..8509de9 100644 |
3126 | --- a/doc/guides/bbdevs/fpga_lte_fec.rst |
3127 | +++ b/doc/guides/bbdevs/fpga_lte_fec.rst |
3128 | @@ -50,7 +50,7 @@ FPGA LTE FEC does not support the following: |
3129 | Installation |
3130 | -------------- |
3131 | |
3132 | -Section 3 of the DPDK manual provides instuctions on installing and compiling DPDK. The |
3133 | +Section 3 of the DPDK manual provides instructions on installing and compiling DPDK. The |
3134 | default set of bbdev compile flags may be found in config/common_base, where for example |
3135 | the flag to build the FPGA LTE FEC device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC``, is already |
3136 | set. It is assumed DPDK has been compiled using for instance: |
3137 | diff --git a/doc/guides/conf.py b/doc/guides/conf.py |
3138 | index c1a82be..279b830 100644 |
3139 | --- a/doc/guides/conf.py |
3140 | +++ b/doc/guides/conf.py |
3141 | @@ -25,7 +25,6 @@ try: |
3142 | import sphinx_rtd_theme |
3143 | |
3144 | html_theme = "sphinx_rtd_theme" |
3145 | - html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] |
3146 | except: |
3147 | print('Install the sphinx ReadTheDocs theme for improved html documentation ' |
3148 | 'layout: pip install sphinx_rtd_theme') |
3149 | @@ -34,7 +33,10 @@ except: |
3150 | project = 'Data Plane Development Kit' |
3151 | html_logo = '../logo/DPDK_logo_vertical_rev_small.png' |
3152 | latex_logo = '../logo/DPDK_logo_horizontal_tag.png' |
3153 | -html_add_permalinks = "" |
3154 | +if LooseVersion(sphinx_version) >= LooseVersion('3.5'): |
3155 | + html_permalinks = False |
3156 | +else: |
3157 | + html_add_permalinks = "" |
3158 | html_show_copyright = False |
3159 | highlight_language = 'none' |
3160 | |
3161 | diff --git a/doc/guides/contributing/stable.rst b/doc/guides/contributing/stable.rst |
3162 | index 021c762..40f4280 100644 |
3163 | --- a/doc/guides/contributing/stable.rst |
3164 | +++ b/doc/guides/contributing/stable.rst |
3165 | @@ -95,7 +95,7 @@ Features should not be backported to stable releases. It may be acceptable, in |
3166 | limited cases, to back port features for the LTS release where: |
3167 | |
3168 | * There is a justifiable use case (for example a new PMD). |
3169 | -* The change is non-invasive. |
3170 | +* The change is noninvasive. |
3171 | * The work of preparing the backport is done by the proposer. |
3172 | * There is support within the community. |
3173 | |
3174 | diff --git a/doc/guides/cryptodevs/caam_jr.rst b/doc/guides/cryptodevs/caam_jr.rst |
3175 | index 6d9daf7..4ee0100 100644 |
3176 | --- a/doc/guides/cryptodevs/caam_jr.rst |
3177 | +++ b/doc/guides/cryptodevs/caam_jr.rst |
3178 | @@ -24,7 +24,7 @@ accelerators. This provides significant improvement to system level performance. |
3179 | |
3180 | SEC HW accelerator above 4.x+ version are also known as CAAM. |
3181 | |
3182 | -caam_jr PMD is one of DPAA drivers which uses uio interface to interact with |
3183 | +caam_jr PMD is one of DPAA drivers which uses UIO interface to interact with |
3184 | Linux kernel for configure and destroy the device instance (ring). |
3185 | |
3186 | |
3187 | diff --git a/doc/guides/cryptodevs/scheduler.rst b/doc/guides/cryptodevs/scheduler.rst |
3188 | index 7004ca4..dd3de7f 100644 |
3189 | --- a/doc/guides/cryptodevs/scheduler.rst |
3190 | +++ b/doc/guides/cryptodevs/scheduler.rst |
3191 | @@ -126,7 +126,7 @@ operation: |
3192 | than the designated threshold, otherwise it will be handled by the secondary |
3193 | slave. |
3194 | |
3195 | - A typical usecase in this mode is with the QAT cryptodev as the primary and |
3196 | + A typical use case in this mode is with the QAT cryptodev as the primary and |
3197 | a software cryptodev as the secondary slave. This may help applications to |
3198 | process additional crypto workload than what the QAT cryptodev can handle on |
3199 | its own, by making use of the available CPU cycles to deal with smaller |
3200 | diff --git a/doc/guides/cryptodevs/virtio.rst b/doc/guides/cryptodevs/virtio.rst |
3201 | index 1496ec9..18bea62 100644 |
3202 | --- a/doc/guides/cryptodevs/virtio.rst |
3203 | +++ b/doc/guides/cryptodevs/virtio.rst |
3204 | @@ -63,7 +63,7 @@ QEMU can then be started using the following parameters: |
3205 | -device virtio-crypto-pci,id=crypto0,cryptodev=cryptodev0 |
3206 | [...] |
3207 | |
3208 | -Secondly bind the uio_generic driver for the virtio-crypto device. |
3209 | +Secondly bind the uio_pci_generic driver for the virtio-crypto device. |
3210 | For example, 0000:00:04.0 is the domain, bus, device and function |
3211 | number of the virtio-crypto device: |
3212 | |
3213 | diff --git a/doc/guides/howto/pvp_reference_benchmark.rst b/doc/guides/howto/pvp_reference_benchmark.rst |
3214 | index 64b1f4d..971cb25 100644 |
3215 | --- a/doc/guides/howto/pvp_reference_benchmark.rst |
3216 | +++ b/doc/guides/howto/pvp_reference_benchmark.rst |
3217 | @@ -26,7 +26,7 @@ Setup overview |
3218 | |
3219 | PVP setup using 2 NICs |
3220 | |
3221 | -In this diagram, each red arrow represents one logical core. This use-case |
3222 | +In this diagram, each red arrow represents one logical core. This use case |
3223 | requires 6 dedicated logical cores. A forwarding configuration with a single |
3224 | NIC is also possible, requiring 3 logical cores. |
3225 | |
3226 | diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst |
3227 | index 96817e7..d8e5ad7 100644 |
3228 | --- a/doc/guides/linux_gsg/linux_drivers.rst |
3229 | +++ b/doc/guides/linux_gsg/linux_drivers.rst |
3230 | @@ -72,6 +72,16 @@ Note that in order to use VFIO, your kernel must support it. |
3231 | VFIO kernel modules have been included in the Linux kernel since version 3.6.0 and are usually present by default, |
3232 | however please consult your distributions documentation to make sure that is the case. |
3233 | |
3234 | +For DMA mapping of either external memory or hugepages, VFIO interface is used. |
3235 | +VFIO does not support partial unmap of once mapped memory. Hence DPDK's memory is |
3236 | +mapped in hugepage granularity or system page granularity. Number of DMA |
3237 | +mappings is limited by kernel with user locked memory limit of a process (rlimit) |
3238 | +for system/hugepage memory. Another per-container overall limit applicable both |
3239 | +for external memory and system memory was added in kernel 5.1 defined by |
3240 | +VFIO module parameter ``dma_entry_limit`` with a default value of 64K. |
3241 | +When application is out of DMA entries, these limits need to be adjusted to |
3242 | +increase the allowed limit. |
3243 | + |
3244 | Also, to use VFIO, both kernel and BIOS must support and be configured to use IO virtualization (such as Intel® VT-d). |
3245 | |
3246 | .. note:: |
3247 | diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst |
3248 | index 434ba9d..60ad312 100644 |
3249 | --- a/doc/guides/nics/bnxt.rst |
3250 | +++ b/doc/guides/nics/bnxt.rst |
3251 | @@ -54,14 +54,14 @@ automatically when the port is started if allowed by the current configuration. |
3252 | RX Requirements for Vector Mode |
3253 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
3254 | |
3255 | -Vector mode receive will be enabled if the following constrainsts are met: |
3256 | +Vector mode receive will be enabled if the following constraints are met: |
3257 | * Packets must fit within a single mbuf (no scatter RX). |
3258 | * LRO offload must be disabled. |
3259 | |
3260 | TX Requirements for Vector Mode |
3261 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
3262 | |
3263 | -Vector mode transmit will be enabled if the following constrainsts are met: |
3264 | +Vector mode transmit will be enabled if the following constraints are met: |
3265 | * Packets must be contained within a single mbuf (no gather TX). |
3266 | * All transmit offloads other than VLAN insertion must be disabled. |
3267 | |
3268 | @@ -123,7 +123,7 @@ Chipsets and adapters supported by the bnxt PMD include: |
3269 | <https://www.broadcom.com/products/ethernet-connectivity/smartnic/>`_ |
3270 | of the `Broadcom website <http://www.broadcom.com/>`_. |
3271 | |
3272 | - * **Broadcom StrataGX® BCM5871X Series of Communucations Processors** |
3273 | + * **Broadcom StrataGX® BCM5871X Series of Communications Processors** |
3274 | |
3275 | These ARM based processors target a broad range of networking applications |
3276 | including virtual CPE (vCPE) and NFV appliances, 10G service routers and |
3277 | diff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst |
3278 | index bbf27f2..d39201c 100644 |
3279 | --- a/doc/guides/nics/ena.rst |
3280 | +++ b/doc/guides/nics/ena.rst |
3281 | @@ -198,7 +198,7 @@ Example output: |
3282 | |
3283 | [...] |
3284 | EAL: PCI device 0000:00:06.0 on NUMA socket -1 |
3285 | - EAL: Invalid NUMA socket, default to 0 |
3286 | + EAL: Device 0000:00:06.0 is not NUMA-aware, defaulting socket to 0 |
3287 | EAL: probe driver: 1d0f:ec20 net_ena |
3288 | |
3289 | Interactive-mode selected |
3290 | diff --git a/doc/guides/nics/hns3.rst b/doc/guides/nics/hns3.rst |
3291 | index 567c65d..7eb6d72 100644 |
3292 | --- a/doc/guides/nics/hns3.rst |
3293 | +++ b/doc/guides/nics/hns3.rst |
3294 | @@ -1,12 +1,12 @@ |
3295 | .. SPDX-License-Identifier: BSD-3-Clause |
3296 | - Copyright(c) 2018-2019 Hisilicon Limited. |
3297 | + Copyright(c) 2018-2019 HiSilicon Limited. |
3298 | |
3299 | HNS3 Poll Mode Driver |
3300 | =============================== |
3301 | |
3302 | The hns3 PMD (librte_pmd_hns3) provides poll mode driver support |
3303 | -for the inbuilt Hisilicon Network Subsystem(HNS) network engine |
3304 | -found in the Hisilicon Kunpeng 920 SoC. |
3305 | +for the inbuilt HiSilicon Network Subsystem(HNS) network engine |
3306 | +found in the HiSilicon Kunpeng 920 SoC. |
3307 | |
3308 | Features |
3309 | -------- |
3310 | diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst |
3311 | index bbad7d0..e81875d 100644 |
3312 | --- a/doc/guides/nics/mlx5.rst |
3313 | +++ b/doc/guides/nics/mlx5.rst |
3314 | @@ -498,6 +498,13 @@ Run-time configuration |
3315 | it is not recommended and may prevent NIC from sending packets over |
3316 | some configurations. |
3317 | |
3318 | + For ConnectX-4 and ConnectX-4 Lx NICs, automatically configured value |
3319 | + is insufficient for some traffic, because they require at least all L2 headers |
3320 | + to be inlined. For example, Q-in-Q adds 4 bytes to default 18 bytes |
3321 | + of Ethernet and VLAN, thus ``txq_inline_min`` must be set to 22. |
3322 | + MPLS would add 4 bytes per label. Final value must account for all possible |
3323 | + L2 encapsulation headers used in particular environment. |
3324 | + |
3325 | Please, note, this minimal data inlining disengages eMPW feature (Enhanced |
3326 | Multi-Packet Write), because last one does not support partial packet inlining. |
3327 | This is not very critical due to minimal data inlining is mostly required |
3328 | @@ -1088,7 +1095,7 @@ the DPDK application. |
3329 | |
3330 | echo -n "<device pci address" > /sys/bus/pci/drivers/mlx5_core/unbind |
3331 | |
3332 | -5. Enbale switchdev mode:: |
3333 | +5. Enable switchdev mode:: |
3334 | |
3335 | echo switchdev > /sys/class/net/<net device>/compat/devlink/mode |
3336 | |
3337 | diff --git a/doc/guides/nics/netvsc.rst b/doc/guides/nics/netvsc.rst |
3338 | index 6dbb9a5..09cb6db 100644 |
3339 | --- a/doc/guides/nics/netvsc.rst |
3340 | +++ b/doc/guides/nics/netvsc.rst |
3341 | @@ -62,7 +62,7 @@ store it in a shell variable: |
3342 | |
3343 | .. _`UUID`: https://en.wikipedia.org/wiki/Universally_unique_identifier |
3344 | |
3345 | -There are several possible ways to assign the uio device driver for a device. |
3346 | +There are several possible ways to assign the UIO device driver for a device. |
3347 | The easiest way (but only on 4.18 or later) |
3348 | is to use the `driverctl Device Driver control utility`_ to override |
3349 | the normal kernel device. |
3350 | diff --git a/doc/guides/nics/nfp.rst b/doc/guides/nics/nfp.rst |
3351 | index 020e37d..7d8ed38 100644 |
3352 | --- a/doc/guides/nics/nfp.rst |
3353 | +++ b/doc/guides/nics/nfp.rst |
3354 | @@ -121,15 +121,15 @@ although once they are created, DPDK apps should be able to use them as normal |
3355 | PCI ports. |
3356 | |
3357 | NFP ports belonging to same PF can be seen inside PMD initialization with a |
3358 | -suffix added to the PCI ID: wwww:xx:yy.z_port_n. For example, a PF with PCI ID |
3359 | +suffix added to the PCI ID: wwww:xx:yy.z_portn. For example, a PF with PCI ID |
3360 | 0000:03:00.0 and four ports is seen by the PMD code as: |
3361 | |
3362 | .. code-block:: console |
3363 | |
3364 | - 0000:03:00.0_port_0 |
3365 | - 0000:03:00.0_port_1 |
3366 | - 0000:03:00.0_port_2 |
3367 | - 0000:03:00.0_port_3 |
3368 | + 0000:03:00.0_port0 |
3369 | + 0000:03:00.0_port1 |
3370 | + 0000:03:00.0_port2 |
3371 | + 0000:03:00.0_port3 |
3372 | |
3373 | .. Note:: |
3374 | |
3375 | diff --git a/doc/guides/nics/octeontx2.rst b/doc/guides/nics/octeontx2.rst |
3376 | index db62a45..cad4a75 100644 |
3377 | --- a/doc/guides/nics/octeontx2.rst |
3378 | +++ b/doc/guides/nics/octeontx2.rst |
3379 | @@ -162,7 +162,7 @@ Runtime Config Options |
3380 | |
3381 | -w 0002:02:00.0,max_sqb_count=64 |
3382 | |
3383 | - With the above configuration, each send queue's decscriptor buffer count is |
3384 | + With the above configuration, each send queue's descriptor buffer count is |
3385 | limited to a maximum of 64 buffers. |
3386 | |
3387 | - ``switch header enable`` (default ``none``) |
3388 | diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst |
3389 | index d1f5fb8..2b1a3a6 100644 |
3390 | --- a/doc/guides/nics/virtio.rst |
3391 | +++ b/doc/guides/nics/virtio.rst |
3392 | @@ -71,7 +71,7 @@ In this release, the virtio PMD driver provides the basic functionality of packe |
3393 | |
3394 | * Virtio supports software vlan stripping and inserting. |
3395 | |
3396 | -* Virtio supports using port IO to get PCI resource when uio/igb_uio module is not available. |
3397 | +* Virtio supports using port IO to get PCI resource when UIO module is not available. |
3398 | |
3399 | Prerequisites |
3400 | ------------- |
3401 | @@ -103,7 +103,8 @@ Host2VM communication example |
3402 | |
3403 | insmod rte_kni.ko |
3404 | |
3405 | - Other basic DPDK preparations like hugepage enabling, uio port binding are not listed here. |
3406 | + Other basic DPDK preparations like hugepage enabling, |
3407 | + UIO port binding are not listed here. |
3408 | Please refer to the *DPDK Getting Started Guide* for detailed instructions. |
3409 | |
3410 | #. Launch the kni user application: |
3411 | @@ -473,7 +474,7 @@ are shown in below table: |
3412 | Split virtqueue in-order non-mergeable path virtio_recv_pkts_inorder virtio_xmit_pkts_inorder |
3413 | Split virtqueue vectorized Rx path virtio_recv_pkts_vec virtio_xmit_pkts |
3414 | Packed virtqueue mergeable path virtio_recv_mergeable_pkts_packed virtio_xmit_pkts_packed |
3415 | - Packed virtqueue non-meregable path virtio_recv_pkts_packed virtio_xmit_pkts_packed |
3416 | + Packed virtqueue non-mergeable path virtio_recv_pkts_packed virtio_xmit_pkts_packed |
3417 | Packed virtqueue in-order mergeable path virtio_recv_mergeable_pkts_packed virtio_xmit_pkts_packed |
3418 | Packed virtqueue in-order non-mergeable path virtio_recv_pkts_packed virtio_xmit_pkts_packed |
3419 | ============================================ ================================= ======================== |
3420 | diff --git a/doc/guides/nics/vmxnet3.rst b/doc/guides/nics/vmxnet3.rst |
3421 | index ae146f0..190cf91 100644 |
3422 | --- a/doc/guides/nics/vmxnet3.rst |
3423 | +++ b/doc/guides/nics/vmxnet3.rst |
3424 | @@ -119,7 +119,8 @@ This section describes an example setup for Phy-vSwitch-VM-Phy communication. |
3425 | |
3426 | .. note:: |
3427 | |
3428 | - Other instructions on preparing to use DPDK such as, hugepage enabling, uio port binding are not listed here. |
3429 | + Other instructions on preparing to use DPDK such as, |
3430 | + hugepage enabling, UIO port binding are not listed here. |
3431 | Please refer to *DPDK Getting Started Guide and DPDK Sample Application's User Guide* for detailed instructions. |
3432 | |
3433 | The packet reception and transmission flow path is:: |
3434 | diff --git a/doc/guides/prog_guide/bbdev.rst b/doc/guides/prog_guide/bbdev.rst |
3435 | index d39167a..27e6848 100644 |
3436 | --- a/doc/guides/prog_guide/bbdev.rst |
3437 | +++ b/doc/guides/prog_guide/bbdev.rst |
3438 | @@ -639,7 +639,7 @@ optionally the ``soft_output`` mbuf data pointers. |
3439 | "soft output","soft LLR output buffer (optional)" |
3440 | "op_flags","bitmask of all active operation capabilities" |
3441 | "rv_index","redundancy version index [0..3]" |
3442 | - "iter_max","maximum number of iterations to perofrm in decode all CBs" |
3443 | + "iter_max","maximum number of iterations to perform in decode all CBs" |
3444 | "iter_min","minimum number of iterations to perform in decoding all CBs" |
3445 | "iter_count","number of iterations to performed in decoding all CBs" |
3446 | "ext_scale","scale factor on extrinsic info (5 bits)" |
3447 | diff --git a/doc/guides/prog_guide/dev_kit_build_system.rst b/doc/guides/prog_guide/dev_kit_build_system.rst |
3448 | index 74dba4d..5e36e38 100644 |
3449 | --- a/doc/guides/prog_guide/dev_kit_build_system.rst |
3450 | +++ b/doc/guides/prog_guide/dev_kit_build_system.rst |
3451 | @@ -9,7 +9,7 @@ Development Kit Build System |
3452 | The DPDK requires a build system for compilation activities and so on. |
3453 | This section describes the constraints and the mechanisms used in the DPDK framework. |
3454 | |
3455 | -There are two use-cases for the framework: |
3456 | +There are two use cases for the framework: |
3457 | |
3458 | * Compilation of the DPDK libraries and sample applications; |
3459 | the framework generates specific binary libraries, |
3460 | diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst b/doc/guides/prog_guide/env_abstraction_layer.rst |
3461 | index 48a2fec..6c84566 100644 |
3462 | --- a/doc/guides/prog_guide/env_abstraction_layer.rst |
3463 | +++ b/doc/guides/prog_guide/env_abstraction_layer.rst |
3464 | @@ -465,7 +465,7 @@ devices would fail anyway. |
3465 | - By default, the mempool, first asks for IOVA-contiguous memory using |
3466 | ``RTE_MEMZONE_IOVA_CONTIG``. This is slow in RTE_IOVA_PA mode and it may |
3467 | affect the application boot time. |
3468 | - - It is easy to enable large amount of IOVA-contiguous memory use-cases |
3469 | + - It is easy to enable large amount of IOVA-contiguous memory use cases |
3470 | with IOVA in VA mode. |
3471 | |
3472 | It is expected that all PCI drivers work in both RTE_IOVA_PA and |
3473 | diff --git a/doc/guides/prog_guide/eventdev.rst b/doc/guides/prog_guide/eventdev.rst |
3474 | index 7bcd760..b415d63 100644 |
3475 | --- a/doc/guides/prog_guide/eventdev.rst |
3476 | +++ b/doc/guides/prog_guide/eventdev.rst |
3477 | @@ -120,7 +120,7 @@ Ports |
3478 | ~~~~~ |
3479 | |
3480 | Ports are the points of contact between worker cores and the eventdev. The |
3481 | -general use-case will see one CPU core using one port to enqueue and dequeue |
3482 | +general use case will see one CPU core using one port to enqueue and dequeue |
3483 | events from an eventdev. Ports are linked to queues in order to retrieve events |
3484 | from those queues (more details in `Linking Queues and Ports`_ below). |
3485 | |
3486 | diff --git a/doc/guides/prog_guide/multi_proc_support.rst b/doc/guides/prog_guide/multi_proc_support.rst |
3487 | index 1a4a9e2..f2e1664 100644 |
3488 | --- a/doc/guides/prog_guide/multi_proc_support.rst |
3489 | +++ b/doc/guides/prog_guide/multi_proc_support.rst |
3490 | @@ -325,7 +325,7 @@ supported. However, since sending messages (not requests) does not involve an |
3491 | IPC thread, sending messages while processing another message or request is |
3492 | supported. |
3493 | |
3494 | -Since the memory sybsystem uses IPC internally, memory allocations and IPC must |
3495 | +Since the memory subsystem uses IPC internally, memory allocations and IPC must |
3496 | not be mixed: it is not safe to use IPC inside a memory-related callback, nor is |
3497 | it safe to allocate/free memory inside IPC callbacks. Attempting to do so may |
3498 | lead to a deadlock. |
3499 | diff --git a/doc/guides/prog_guide/qos_framework.rst b/doc/guides/prog_guide/qos_framework.rst |
3500 | index a159709..f39b099 100644 |
3501 | --- a/doc/guides/prog_guide/qos_framework.rst |
3502 | +++ b/doc/guides/prog_guide/qos_framework.rst |
3503 | @@ -737,7 +737,7 @@ Strict priority scheduling of traffic classes within the same pipe is implemente |
3504 | which selects the queues in ascending order. |
3505 | Therefore, queue 0 (associated with TC 0, highest priority TC) is handled before |
3506 | queue 1 (TC 1, lower priority than TC 0), |
3507 | -which is handled before queue 2 (TC 2, lower priority than TC 1) and it conitnues until queues of all TCs except the |
3508 | +which is handled before queue 2 (TC 2, lower priority than TC 1) and it continues until queues of all TCs except the |
3509 | lowest priority TC are handled. At last, queues 12..15 (best effort TC, lowest priority TC) are handled. |
3510 | |
3511 | Upper Limit Enforcement |
3512 | diff --git a/doc/guides/prog_guide/writing_efficient_code.rst b/doc/guides/prog_guide/writing_efficient_code.rst |
3513 | index 849f63e..88e6bde 100644 |
3514 | --- a/doc/guides/prog_guide/writing_efficient_code.rst |
3515 | +++ b/doc/guides/prog_guide/writing_efficient_code.rst |
3516 | @@ -143,20 +143,21 @@ In order to achieve higher throughput, |
3517 | the DPDK attempts to aggregate the cost of processing each packet individually by processing packets in bursts. |
3518 | |
3519 | Using the testpmd application as an example, |
3520 | -the burst size can be set on the command line to a value of 16 (also the default value). |
3521 | -This allows the application to request 16 packets at a time from the PMD. |
3522 | +the burst size can be set on the command line to a value of 32 (also the default value). |
3523 | +This allows the application to request 32 packets at a time from the PMD. |
3524 | The testpmd application then immediately attempts to transmit all the packets that were received, |
3525 | -in this case, all 16 packets. |
3526 | +in this case, all 32 packets. |
3527 | |
3528 | The packets are not transmitted until the tail pointer is updated on the corresponding TX queue of the network port. |
3529 | This behavior is desirable when tuning for high throughput because |
3530 | -the cost of tail pointer updates to both the RX and TX queues can be spread across 16 packets, |
3531 | +the cost of tail pointer updates to both the RX and TX queues can be spread |
3532 | +across 32 packets, |
3533 | effectively hiding the relatively slow MMIO cost of writing to the PCIe* device. |
3534 | However, this is not very desirable when tuning for low latency because |
3535 | -the first packet that was received must also wait for another 15 packets to be received. |
3536 | -It cannot be transmitted until the other 15 packets have also been processed because |
3537 | +the first packet that was received must also wait for another 31 packets to be received. |
3538 | +It cannot be transmitted until the other 31 packets have also been processed because |
3539 | the NIC will not know to transmit the packets until the TX tail pointer has been updated, |
3540 | -which is not done until all 16 packets have been processed for transmission. |
3541 | +which is not done until all 32 packets have been processed for transmission. |
3542 | |
3543 | To consistently achieve low latency, even under heavy system load, |
3544 | the application developer should avoid processing packets in bunches. |
3545 | diff --git a/doc/guides/rawdevs/ntb.rst b/doc/guides/rawdevs/ntb.rst |
3546 | index aa7d809..439bc51 100644 |
3547 | --- a/doc/guides/rawdevs/ntb.rst |
3548 | +++ b/doc/guides/rawdevs/ntb.rst |
3549 | @@ -18,7 +18,7 @@ BIOS setting on Intel Skylake |
3550 | ----------------------------- |
3551 | |
3552 | Intel Non-transparent Bridge needs special BIOS setting. Since the PMD only |
3553 | -supports Intel Skylake platform, introduce BIOS setting here. The referencce |
3554 | +supports Intel Skylake platform, introduce BIOS setting here. The reference |
3555 | is https://www.intel.com/content/dam/support/us/en/documents/server-products/Intel_Xeon_Processor_Scalable_Family_BIOS_User_Guide.pdf |
3556 | |
3557 | - Set the needed PCIe port as NTB to NTB mode on both hosts. |
3558 | diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst |
3559 | index 5810959..7ac8360 100644 |
3560 | --- a/doc/guides/rel_notes/deprecation.rst |
3561 | +++ b/doc/guides/rel_notes/deprecation.rst |
3562 | @@ -59,6 +59,12 @@ Deprecation Notices |
3563 | - ``rte_eth_dev_stop`` |
3564 | - ``rte_eth_dev_close`` |
3565 | |
3566 | +* ethdev: Will add ``RTE_ETH_`` prefix to all ethdev macros/enums in v21.11. |
3567 | + Macros will be added for backward compatibility. |
3568 | + Backward compatibility macros will be removed on v22.11. |
3569 | + A few old backward compatibility macros from 2013 that does not have |
3570 | + proper prefix will be removed on v21.11. |
3571 | + |
3572 | * ethdev: New offload flags ``DEV_RX_OFFLOAD_FLOW_MARK`` will be added in 19.11. |
3573 | This will allow application to enable or disable PMDs from updating |
3574 | ``rte_mbuf::hash::fdir``. |
3575 | diff --git a/doc/guides/rel_notes/known_issues.rst b/doc/guides/rel_notes/known_issues.rst |
3576 | index 68c3d22..21a4764 100644 |
3577 | --- a/doc/guides/rel_notes/known_issues.rst |
3578 | +++ b/doc/guides/rel_notes/known_issues.rst |
3579 | @@ -419,7 +419,7 @@ Binding PCI devices to igb_uio fails on Linux kernel 3.9 when more than one devi |
3580 | ------------------------------------------------------------------------------------------ |
3581 | |
3582 | **Description**: |
3583 | - A known bug in the uio driver included in Linux kernel version 3.9 prevents more than one PCI device to be |
3584 | + A known bug in the UIO driver included in Linux kernel version 3.9 prevents more than one PCI device to be |
3585 | bound to the igb_uio driver. |
3586 | |
3587 | **Implication**: |
3588 | @@ -614,7 +614,7 @@ I40e VF may not receive packets in the promiscuous mode |
3589 | Poll Mode Driver (PMD). |
3590 | |
3591 | |
3592 | -uio pci generic module bind failed in X710/XL710/XXV710 |
3593 | +uio_pci_generic module bind failed in X710/XL710/XXV710 |
3594 | ------------------------------------------------------- |
3595 | |
3596 | **Description**: |
3597 | @@ -671,7 +671,7 @@ virtio tx_burst() function cannot do TSO on shared packets |
3598 | Poll Mode Driver (PMD). |
3599 | |
3600 | |
3601 | -igb uio legacy mode can not be used in X710/XL710/XXV710 |
3602 | +igb_uio legacy mode can not be used in X710/XL710/XXV710 |
3603 | -------------------------------------------------------- |
3604 | |
3605 | **Description**: |
3606 | @@ -752,7 +752,7 @@ Netvsc driver and application restart |
3607 | handshake sequence with the host. |
3608 | |
3609 | **Resolution/Workaround**: |
3610 | - Either reboot the guest or remove and reinsert the hv_uio_generic module. |
3611 | + Either reboot the guest or remove and reinsert the uio_hv_generic module. |
3612 | |
3613 | **Affected Environment/Platform**: |
3614 | Linux Hyper-V. |
3615 | @@ -816,7 +816,7 @@ Kernel crash when hot-unplug igb_uio device while DPDK application is running |
3616 | |
3617 | **Reason**: |
3618 | When device is hot-unplugged, igb_uio driver will be removed which will destroy UIO resources. |
3619 | - Later trying to access any uio resource will cause kernel crash. |
3620 | + Later trying to access any UIO resource will cause kernel crash. |
3621 | |
3622 | **Resolution/Workaround**: |
3623 | If using DPDK for PCI HW hot-unplug, prefer to bind device with VFIO instead of IGB_UIO. |
3624 | diff --git a/doc/guides/rel_notes/release_16_11.rst b/doc/guides/rel_notes/release_16_11.rst |
3625 | index 92e0ec6..3cec914 100644 |
3626 | --- a/doc/guides/rel_notes/release_16_11.rst |
3627 | +++ b/doc/guides/rel_notes/release_16_11.rst |
3628 | @@ -77,7 +77,7 @@ New Features |
3629 | the current version, even 64 bytes packets take two slots with Virtio PMD on guest |
3630 | side. |
3631 | |
3632 | - The main impact is better performance for 0% packet loss use-cases, as it |
3633 | + The main impact is better performance for 0% packet loss use cases, as it |
3634 | behaves as if the virtqueue size was enlarged, so more packets can be buffered |
3635 | in the case of system perturbations. On the downside, small performance degradations |
3636 | were measured when running micro-benchmarks. |
3637 | diff --git a/doc/guides/rel_notes/release_19_08.rst b/doc/guides/rel_notes/release_19_08.rst |
3638 | index cbb27e8..d2baa82 100644 |
3639 | --- a/doc/guides/rel_notes/release_19_08.rst |
3640 | +++ b/doc/guides/rel_notes/release_19_08.rst |
3641 | @@ -151,7 +151,7 @@ New Features |
3642 | * Added multi-queue support to allow one af_xdp vdev with multiple netdev |
3643 | queues. |
3644 | * Enabled "need_wakeup" feature which can provide efficient support for the |
3645 | - usecase where the application and driver executing on the same core. |
3646 | + use case where the application and driver executing on the same core. |
3647 | |
3648 | * **Enabled infinite Rx in the PCAP PMD.** |
3649 | |
3650 | diff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst |
3651 | index 511d7f8..63108dd 100644 |
3652 | --- a/doc/guides/rel_notes/release_19_11.rst |
3653 | +++ b/doc/guides/rel_notes/release_19_11.rst |
3654 | @@ -3095,13 +3095,12 @@ Tested Platforms |
3655 | * rib: fix insertion in some cases |
3656 | * rib: fix missing header include |
3657 | * rib: fix missing header includes |
3658 | -* (tag: 19.11.7-20.11-21.02-rc2) app/testpmd: fix setting maximum packet length |
3659 | -* (tag: 19.11.7-20.11-21.02-rc2-backports) net/mlx5: fix port attach in secondary process |
3660 | -* (tag: 19.11.7-21.02rc2-21.02-rc3-backports) net/mlx5: fix VXLAN decap on non-VXLAN flow |
3661 | -* (tag: 19.11.7-21.02rc2-21.02-rc3) mempool: fix panic on dump or audit |
3662 | -* (tag: 19.11.7-21.02rc3-21.02-backports) mem: fix build |
3663 | -* (tag: 19.11.7-21.02rc3-21.02) usertools: fix binding built-in kernel driver |
3664 | -* (tag: v19.11.7-rc1) version: 19.11.7-rc1 |
3665 | +* app/testpmd: fix setting maximum packet length |
3666 | +* net/mlx5: fix port attach in secondary process |
3667 | +* net/mlx5: fix VXLAN decap on non-VXLAN flow |
3668 | +* mempool: fix panic on dump or audit |
3669 | +* mem: fix build |
3670 | +* usertools: fix binding built-in kernel driver |
3671 | * test/distributor: fix return buffer queue overload |
3672 | * test/event_crypto: set cipher operation in transform |
3673 | * test: fix buffer overflow in Tx burst |
3674 | @@ -3227,3 +3226,735 @@ Tested Platforms |
3675 | * The UDP fragmentation offload feature of Virtio-net device can not be turned on in the VM. Bug: https://bugzilla.kernel.org/show_bug.cgi?id=207075 |
3676 | |
3677 | * mlx5 VLAN packets will not do RSS. Bug: https://bugs.dpdk.org/show_bug.cgi?id=661 |
3678 | + |
3679 | +19.11.8 Release Notes |
3680 | +--------------------- |
3681 | + |
3682 | +19.11.8 Fixes |
3683 | +~~~~~~~~~~~~~ |
3684 | + |
3685 | +* Regenerate meson.build changes required due to reverts |
3686 | +* Revert "Revert "Revert "build: always link whole DPDK static libraries""" |
3687 | +* Revert "Revert "Revert "build/pkg-config: improve static linking flags""" |
3688 | +* Revert "Revert "Revert "build/pkg-config: move pkg-config file creation""" |
3689 | +* Revert "Revert "Revert "build/pkg-config: output drivers first for static build""" |
3690 | +* Revert "Revert "Revert "build/pkg-config: prevent overlinking""" |
3691 | +* Revert "Revert "Revert "devtools: test static linkage with pkg-config""" |
3692 | + |
3693 | +19.11.8 Validation |
3694 | +~~~~~~~~~~~~~~~~~~ |
3695 | + |
3696 | +* Intel(R) Testing |
3697 | + |
3698 | + * Builds |
3699 | + |
3700 | + * Basic Intel NIC (ixgbe, i40e) testing |
3701 | + |
3702 | + * PF (i40e) |
3703 | + * PF (ixgbe) |
3704 | + * VF (i40e) |
3705 | + * VF (ixgbe) |
3706 | + * Compile Testing |
3707 | + * Intel NIC single core/NIC performance |
3708 | + |
3709 | + * Basic cryptodev and virtio testing |
3710 | + |
3711 | + * vhost/virtio basic loopback, PVP and performance test |
3712 | + * cryptodev Function/Performance |
3713 | + |
3714 | +* Intel(R) Testing with Open vSwitch |
3715 | + |
3716 | + * OVS build and link testing with OVS 2.13 (make based) |
3717 | + * OVS build and link testing with OVS 2.14 (make based) |
3718 | + |
3719 | +* Canonical(R) Testing |
3720 | + |
3721 | + * Build tests of DPDK & OVS 2.13.3 on Ubuntu 20.04 (meson based) |
3722 | + * Build tests of DPDK & OVS 2.13.3 on Ubuntu 20.10 (meson based) |
3723 | + * OVS-DPDK tests on x86_64 |
3724 | + |
3725 | +19.11.9 Release Notes |
3726 | +--------------------- |
3727 | + |
3728 | +19.11.9 Fixes |
3729 | +~~~~~~~~~~~~~ |
3730 | + |
3731 | +* app/bbdev: fix HARQ error messages |
3732 | +* app/crypto-perf: check memory allocation |
3733 | +* app/eventdev: fix lcore parsing skipping last core |
3734 | +* app/eventdev: fix overflow in lcore list parsing |
3735 | +* app: fix exit messages |
3736 | +* app/testpmd: fix bitmap of link speeds when force speed |
3737 | +* app/testpmd: fix build with musl |
3738 | +* app/testpmd: fix DCB forwarding configuration |
3739 | +* app/testpmd: fix DCB re-configuration |
3740 | +* app/testpmd: fix forward lcores number for DCB |
3741 | +* app/testpmd: fix max queue number for Tx offloads |
3742 | +* app/testpmd: fix NVGRE encap configuration |
3743 | +* app/testpmd: fix segment number check |
3744 | +* app/testpmd: fix Tx/Rx descriptor query error log |
3745 | +* app/testpmd: remove unnecessary UDP tunnel check |
3746 | +* bpf: fix JSLT validation |
3747 | +* build: detect execinfo library on Linux |
3748 | +* build: exclude meson files from examples installation |
3749 | +* buildtools: fix build with busybox |
3750 | +* bus/dpaa: fix 64-bit arch detection |
3751 | +* bus/dpaa: fix build with musl |
3752 | +* bus/dpaa: fix statistics reading |
3753 | +* bus/fslmc: fix random portal hangs with qbman 5.0 |
3754 | +* bus/fslmc: remove unused debug macro |
3755 | +* common/dpaax/caamflib: fix build with musl |
3756 | +* common/dpaax: fix possible null pointer access |
3757 | +* common/iavf: use pad byte to specify MAC type |
3758 | +* common/qat: increase IM buffer size for GEN3 |
3759 | +* common/sfc_efx/base: limit reported MCDI response length |
3760 | +* compress/qat: enable compression on GEN3 |
3761 | +* config/ppc: reduce number of cores and NUMA nodes |
3762 | +* crypto/dpaa2_sec: fix close and uninit functions |
3763 | +* crypto/dpaa_sec: affine the thread portal affinity |
3764 | +* crypto/qat: fix null authentication request |
3765 | +* crypto/qat: fix offset for out-of-place scatter-gather |
3766 | +* doc: fix build with Sphinx 4 |
3767 | +* doc: fix HiSilicon copyright syntax |
3768 | +* doc: fix multiport syntax in nfp guide |
3769 | +* doc: fix names of UIO drivers |
3770 | +* doc: fix sphinx rtd theme import in GHA |
3771 | +* drivers/crypto: fix build with -fno-common |
3772 | +* drivers/net: check process type in close operation |
3773 | +* eal: add C++ include guard for reciprocal header |
3774 | +* eal/arm64: fix platform register bit |
3775 | +* eal: fix comment of OS-specific header files |
3776 | +* eal: fix hang in control thread creation |
3777 | +* eal: fix race in control thread creation |
3778 | +* eal: fix service core list parsing |
3779 | +* eal/windows: add cleanup function stub |
3780 | +* eal/windows: fix default thread priority |
3781 | +* ethdev: add missing buses in device iterator |
3782 | +* ethdev: fix redundant flow after RSS expansion |
3783 | +* ethdev: update flow item GTP QFI definition |
3784 | +* ethdev: validate input in EEPROM info |
3785 | +* ethdev: validate input in module EEPROM dump |
3786 | +* ethdev: validate input in register info |
3787 | +* eventdev: fix case to initiate crypto adapter service |
3788 | +* eventdev: fix memory leakage on thread creation failure |
3789 | +* eventdev: remove redundant thread name setting |
3790 | +* event/dpaa2: remove unused macros |
3791 | +* event/octeontx2: fix device reconfigure for single slot |
3792 | +* examples: add eal cleanup to examples |
3793 | +* examples/bbdev: fix header include for musl |
3794 | +* examples/ethtool: remove unused parsing |
3795 | +* examples/flow_classify: fix NUMA check of port and core |
3796 | +* examples/l2fwd-cat: fix NUMA check of port and core |
3797 | +* examples/l2fwd-crypto: fix packet length while decryption |
3798 | +* examples/l2fwd-crypto: skip masked devices |
3799 | +* examples/l3fwd: fix LPM IPv6 subnets |
3800 | +* examples/l3fwd-power: fix empty poll thresholds |
3801 | +* examples/packet_ordering: fix port configuration |
3802 | +* examples/ptpclient: remove wrong comment |
3803 | +* examples/rxtx_callbacks: fix port ID format specifier |
3804 | +* examples/skeleton: fix NUMA check of port and core |
3805 | +* examples/timer: fix time interval |
3806 | +* examples/vhost: check memory table query |
3807 | +* examples/vhost_crypto: remove unused short option |
3808 | +* fbarray: fix log message on truncation error |
3809 | +* net/mlx5: fix flow split combined with counter |
3810 | +* ipc: check malloc sync reply result |
3811 | +* ipc: use monotonic clock |
3812 | +* kni: fix compilation on SLES15-SP3 |
3813 | +* license: fix typos |
3814 | +* log/linux: make default output stderr |
3815 | +* mbuf: check shared memory before dumping dynamic space |
3816 | +* mem: fix freeing segments in --huge-unlink mode |
3817 | +* net/af_xdp: fix error handling during Rx queue setup |
3818 | +* net/ark: refactor Rx buffer recovery |
3819 | +* net/ark: update packet director initial state |
3820 | +* net/bnx2x: fix build with GCC 11 |
3821 | +* net/bnx2x: fix build with GCC 11 |
3822 | +* net/bnxt: check PCI config read |
3823 | +* net/bnxt: drop unused attribute |
3824 | +* net/bnxt: fix build failures after merging patches |
3825 | +* net/bnxt: fix configuring LRO |
3826 | +* net/bnxt: fix device readiness check |
3827 | +* net/bnxt: fix double free in port start failure |
3828 | +* net/bnxt: fix dynamic VNIC count |
3829 | +* net/bnxt: fix firmware fatal error handling |
3830 | +* net/bnxt: fix FW readiness check during recovery |
3831 | +* net/bnxt: fix handling of null flow mask |
3832 | +* net/bnxt: fix health check alarm cancellation |
3833 | +* net/bnxt: fix HWRM and FW incompatibility handling |
3834 | +* net/bnxt: fix link state operations |
3835 | +* net/bnxt: fix memory allocation for command response |
3836 | +* net/bnxt: fix mismatched type comparison in MAC restore |
3837 | +* net/bnxt: fix PCI write check |
3838 | +* net/bnxt: fix PTP support for Thor |
3839 | +* net/bnxt: fix queues per VNIC |
3840 | +* net/bnxt: fix ring count calculation for Thor |
3841 | +* net/bnxt: fix RSS context cleanup |
3842 | +* net/bnxt: fix Rx and Tx timestamps |
3843 | +* net/bnxt: fix Rx buffer posting |
3844 | +* net/bnxt: fix Rx descriptor status |
3845 | +* net/bnxt: fix Rx queue count |
3846 | +* net/bnxt: fix Rx timestamp when FIFO pending bit is set |
3847 | +* net/bnxt: fix single PF per port check |
3848 | +* net/bnxt: fix timesync when PTP is not supported |
3849 | +* net/bnxt: fix Tx length hint threshold |
3850 | +* net/bnxt: fix Tx timestamp init |
3851 | +* net/bnxt: fix VF info allocation |
3852 | +* net/bnxt: fix VNIC configuration |
3853 | +* net/bnxt: fix xstats get |
3854 | +* net/bnxt: prevent device access in error state |
3855 | +* net/bnxt: refactor multi-queue Rx configuration |
3856 | +* net/bnxt: remove unnecessary forward declarations |
3857 | +* net/bnxt: remove unused function parameters |
3858 | +* net/bnxt: remove unused macro |
3859 | +* net/bnxt: reset filter indices on free |
3860 | +* net/bnxt: use prefix on global function |
3861 | +* net/bonding: fix adding itself as its slave |
3862 | +* net/bonding: fix LACP system address check |
3863 | +* net/bonding: fix leak on remove |
3864 | +* net/bonding: fix socket ID check |
3865 | +* net/cxgbe: remove use of uint type |
3866 | +* net/dpaa2: fix getting link status |
3867 | +* net/e1000/base: fix timeout for shadow RAM write |
3868 | +* net/e1000: fix flow error message object |
3869 | +* net/e1000: fix max Rx packet size |
3870 | +* net/e1000: fix Rx error counter for bad length |
3871 | +* net/e1000: remove MTU setting limitation |
3872 | +* net/ena/base: fix type conversions by explicit casting |
3873 | +* net/ena: fix releasing Tx ring mbufs |
3874 | +* net/ena: remove endian swap functions |
3875 | +* net/ena: switch memcpy to optimized version |
3876 | +* net/failsafe: fix RSS hash offload reporting |
3877 | +* net/failsafe: report minimum and maximum MTU |
3878 | +* net: fix comment in IPv6 header |
3879 | +* net/hinic: fix crash in secondary process |
3880 | +* net/hns3: clear hash map on flow director clear |
3881 | +* net/hns3: delete redundant blank line |
3882 | +* net/hns3: fix DCB mode check |
3883 | +* net/hns3: fix DCB reconfiguration |
3884 | +* net/hns3: fix flow control exception |
3885 | +* net/hns3: fix flow control mode |
3886 | +* net/hns3: fix flow counter value |
3887 | +* net/hns3: fix FLR miss detection |
3888 | +* net/hns3: fix handling link update |
3889 | +* net/hns3: fix HW buffer size on MTU update |
3890 | +* net/hns3: fix mailbox error message |
3891 | +* net/hns3: fix MTU config complexity |
3892 | +* net/hns3: fix ordering in secondary process initialization |
3893 | +* net/hns3: fix processing Tx offload flags |
3894 | +* net/hns3: fix querying flow director counter for out param |
3895 | +* net/hns3: fix requested FC mode rollback |
3896 | +* net/hns3: fix rollback after setting PVID failure |
3897 | +* net/hns3: fix secondary process request start/stop Rx/Tx |
3898 | +* net/hns3: fix typos on comments |
3899 | +* net/hns3: fix VF mailbox head field |
3900 | +* net/hns3: fix VMDq mode check |
3901 | +* net/hns3: log time delta in decimal format |
3902 | +* net/hns3: remove meaningless packet buffer rollback |
3903 | +* net/hns3: remove unused macro |
3904 | +* net/hns3: remove unused macros |
3905 | +* net/hns3: remove unused macros |
3906 | +* net/hns3: remove unused mailbox macro and struct |
3907 | +* net/hns3: remove unused VMDq code |
3908 | +* net/hns3: return error on PCI config write failure |
3909 | +* net/hns3: support get device version when dump register |
3910 | +* net/hns3: update HiSilicon copyright syntax |
3911 | +* net/i40e: announce request queue capability in PF |
3912 | +* net/i40e: fix input set field mask |
3913 | +* net/i40e: fix IPv4 fragment offload |
3914 | +* net/i40e: fix lack of MAC type when set MAC address |
3915 | +* net/i40e: fix negative VEB index |
3916 | +* net/i40e: fix parsing packet type for NEON |
3917 | +* net/i40e: fix primary MAC type when starting port |
3918 | +* net/i40e: fix VF RSS configuration |
3919 | +* net/i40e: remove redundant VSI check in Tx queue setup |
3920 | +* net/i40evf: fix packet loss for X722 |
3921 | +* net/iavf: fix lack of MAC type when set MAC address |
3922 | +* net/iavf: fix primary MAC type when starting port |
3923 | +* net/iavf: fix TSO max segment size |
3924 | +* net/iavf: fix Tx context descriptor |
3925 | +* net/iavf: fix VF to PF command failure handling |
3926 | +* net/ice/base: cleanup filter list on error |
3927 | +* net/ice/base: fix build with GCC 11 |
3928 | +* net/ice/base: fix memory allocation for MAC addresses |
3929 | +* net/ice/base: fix memory allocation wrapper |
3930 | +* net/ice/base: fix payload indicator on ptype |
3931 | +* net/ice: check some functions return |
3932 | +* net/ice: fix disabling promiscuous mode |
3933 | +* net/ice: fix fast mbuf freeing |
3934 | +* net/ice: fix illegal access when removing MAC filter |
3935 | +* net/ice: fix VLAN filter with PF |
3936 | +* net/ice: fix VSI array out of bounds access |
3937 | +* net/ixgbe: fix RSS RETA being reset after port start |
3938 | +* net/ixgbe: fix Rx errors statistics for UDP checksum |
3939 | +* net/kni: check init result |
3940 | +* net/memif: fix Tx bps statistics for zero-copy |
3941 | +* net/mlx4: fix buffer leakage on device close |
3942 | +* net/mlx4: fix leak when configured repeatedly |
3943 | +* net/mlx4: fix RSS action with null hash key |
3944 | +* net/mlx4: fix secondary process initialization ordering |
3945 | +* net/mlx5: fix drop action for Direct Rules/Verbs |
3946 | +* net/mlx5: fix leak when configured repeatedly |
3947 | +* net/mlx5: fix metadata item validation for ingress flows |
3948 | +* net/mlx5: fix probing device in legacy bonding mode |
3949 | +* net/mlx5: fix Rx metadata leftovers |
3950 | +* net/mlx5: fix Rx segmented packets on mbuf starvation |
3951 | +* net/mlx5: fix secondary process initialization ordering |
3952 | +* net/mlx5: remove drop queue function prototypes |
3953 | +* net/mlx5: support RSS expansion for IPv6 GRE |
3954 | +* net/nfp: fix reporting of RSS capabilities |
3955 | +* net/octeontx2: fix VLAN filter |
3956 | +* net/pcap: fix format string |
3957 | +* net/qede: accept bigger RSS table |
3958 | +* net/qede: reduce log verbosity |
3959 | +* net/tap: check ioctl on restore |
3960 | +* net/tap: fix build with GCC 11 |
3961 | +* net/tap: fix interrupt vector array size |
3962 | +* net/virtio: fix interrupt unregistering for listening socket |
3963 | +* net/virtio: fix vectorized Rx queue rearm |
3964 | +* power: do not skip saving original P-state governor |
3965 | +* power: fix sanity checks for guest channel read |
3966 | +* power: remove duplicated symbols from map file |
3967 | +* power: save original ACPI governor always |
3968 | +* raw/ntb: check memory allocations |
3969 | +* raw/ntb: check SPAD user index |
3970 | +* raw/skeleton: add missing check after setting attribute |
3971 | +* Revert "kni: fix compilation on SLES15-SP3" |
3972 | +* service: clean references to removed symbol |
3973 | +* stack: allow lock-free only on relevant architectures |
3974 | +* test/bpf: fix error message |
3975 | +* test: check flow classifier creation |
3976 | +* test: check thread creation |
3977 | +* test/cmdline: fix inputs array |
3978 | +* test/cmdline: silence clang 12 warning |
3979 | +* test/crypto: fix auth-cipher compare length in OOP |
3980 | +* test/crypto: fix build with GCC 11 |
3981 | +* test/distributor: fix burst flush on worker quit |
3982 | +* test/distributor: fix worker notification in burst mode |
3983 | +* test/event: fix timeout accuracy |
3984 | +* test: fix autotest handling of skipped tests |
3985 | +* test: fix build with GCC 11 |
3986 | +* test: fix division by zero |
3987 | +* test: fix TCP header initialization |
3988 | +* test/kni: check init result |
3989 | +* test/kni: fix a comment |
3990 | +* test/mempool: fix object initializer |
3991 | +* test/power: add delay before checking CPU frequency |
3992 | +* test/power: add turbo mode to frequency check |
3993 | +* test/power: fix CPU frequency check |
3994 | +* test/power: fix low frequency test when turbo enabled |
3995 | +* test/power: fix turbo test |
3996 | +* test/power: round CPU frequency to check |
3997 | +* test: proceed if timer subsystem already initialized |
3998 | +* test/table: fix build with GCC 11 |
3999 | +* test/timer: check memzone allocation |
4000 | +* vdpa/ifc: check PCI config read |
4001 | +* vfio: do not merge contiguous areas |
4002 | +* vfio: fix API description |
4003 | +* vfio: fix DMA mapping granularity for IOVA as VA |
4004 | +* vfio: fix duplicated user mem map |
4005 | +* vfio: fix stdbool usage without include |
4006 | +* vhost: fix batch dequeue potential buffer overflow |
4007 | +* vhost: fix initialization of temporary header |
4008 | +* vhost: fix packed ring potential buffer overflow |
4009 | +* vhost: fix queue initialization |
4010 | +* vhost: fix split ring potential buffer overflow |
4011 | + |
4012 | +19.11.9 Validation |
4013 | +~~~~~~~~~~~~~~~~~~ |
4014 | + |
4015 | +* [Intel(R) Testing](http://mails.dpdk.org/archives/stable/2021-July/032349.html) |
4016 | + |
4017 | + * Builds |
4018 | + |
4019 | + * Basic Intel NIC (ixgbe, i40e) testing |
4020 | + |
4021 | + * PF (i40e) |
4022 | + * PF (ixgbe) |
4023 | + * VF (i40e) |
4024 | + * VF (ixgbe) |
4025 | + * Compile Testing |
4026 | + * Intel NIC single core/NIC performance |
4027 | + |
4028 | + * Basic cryptodev and virtio testing |
4029 | + |
4030 | + * vhost/virtio basic loopback, PVP and performance test |
4031 | + * cryptodev Function/Performance |
4032 | + |
4033 | +* [Intel(R) Testing with Open vSwitch](http://mails.dpdk.org/archives/stable/2021-June/031702.html) |
4034 | + |
4035 | + * OVS build and link testing with OVS 2.13 (make based) |
4036 | + * OVS build and link testing with OVS 2.14 (make based) |
4037 | + * VSPERF tests |
4038 | + |
4039 | + * phy2phy_tput |
4040 | + * pvp_tput |
4041 | + * pvp_cont |
4042 | + * pvvp_tput |
4043 | + * pvpv_cont |
4044 | + * ovsdpdk_jumbo_p2p |
4045 | + * ovsdpdk_jumbo_pvp |
4046 | + * ovsdpdk_jumbo_p2p_upper_bound |
4047 | + * ovsdpdk_mq_pvp_rxqs_testpmd |
4048 | + * ovsdpdk_mq_pvp_rxqs_linux_bridge |
4049 | + |
4050 | +* [Canonical(R) Testing](http://mails.dpdk.org/archives/stable/2021-July/031997.html) |
4051 | + |
4052 | + * Build tests of DPDK & OVS 2.13.3 on Ubuntu 20.04 (meson based) |
4053 | + * Build tests of DPDK & OVS 2.13.3 on Ubuntu 20.10 (meson based) |
4054 | + * Functional and performance tests based on OVS-DPDK on x86_64 |
4055 | + * Autopkgtests for DPDK and OpenvSwitch |
4056 | + |
4057 | +* [Red Hat(R) Testing](http://mails.dpdk.org/archives/stable/2021-June/031619.html) |
4058 | + |
4059 | + * Platform |
4060 | + |
4061 | + * RHEL 8 |
4062 | + * Kernel 4.18 |
4063 | + * Qemu 6.0 |
4064 | + * X540-AT2 NIC(ixgbe, 10G) |
4065 | + * Tested on 19.11.9-RC3 |
4066 | + |
4067 | + * Tests |
4068 | + |
4069 | + * Guest with device assignment(PF) throughput testing(1G hugepage size): PASS |
4070 | + * Guest with device assignment(PF) throughput testing(2M hugepage size) : PASS |
4071 | + * Guest with device assignment(VF) throughput testing: PASS |
4072 | + * PVP (host dpdk testpmd as vswitch) 1Q: throughput testing: PASS |
4073 | + * PVP vhost-user 2Q throughput testing: PASS |
4074 | + * PVP vhost-user 1Q - cross numa node throughput testing: PASS |
4075 | + * Guest with vhost-user 2 queues throughput testing: PASS |
4076 | + * vhost-user reconnect with dpdk-client, qemu-server: qemu reconnect: PASS |
4077 | + * vhost-user reconnect with dpdk-client, qemu-server: ovs reconnect: PASS |
4078 | + * PVP 1Q live migration testing: PASS |
4079 | + * PVP 1Q cross numa node live migration testing: PASS |
4080 | + * Guest with ovs+dpdk+vhost-user 1Q live migration testing: PASS |
4081 | + * Guest with ovs+dpdk+vhost-user 1Q live migration testing (2M): PASS |
4082 | + * Guest with ovs+dpdk+vhost-user 2Q live migration testing: PASS |
4083 | + * Host PF + DPDK testing: PASS |
4084 | + * Host VF + DPDK testing: PASS |
4085 | + |
4086 | +* [Nvidia (R) Testing](http://mails.dpdk.org/archives/stable/2021-July/032381.html) |
4087 | + |
4088 | + * functional tests on Mellanox hardware |
4089 | + |
4090 | + * NIC: ConnectX-4 Lx / OS: Ubuntu 20.04 LTS / Driver: MLNX_OFED_LINUX-5.3-1.0.0.1 / Firmware: 14.30.1004 |
4091 | + * NIC: ConnectX-5 / OS: Ubuntu 20.04 LTS / Driver: MLNX_OFED_LINUX-5.3-1.0.0.1 / Firmware: 16.30.1004 |
4092 | + |
4093 | + * Basic functionality: |
4094 | + |
4095 | + * Send and receive multiple types of traffic. |
4096 | + * testpmd xstats counter test. |
4097 | + * testpmd timestamp test. |
4098 | + * Changing/checking link status through testpmd. |
4099 | + * RTE flow tests: Items: eth / vlan / ipv4 / ipv6 / tcp / udp / icmp / gre / nvgre / vxlan ip in ip / mplsoudp / mplsogre |
4100 | + * Actions: drop / queue / rss / mark / flag / jump / count / raw_encap / raw_decap / vxlan_encap / vxlan_decap / NAT / dec_ttl |
4101 | + * Some RSS tests. |
4102 | + * VLAN filtering, stripping and insertion tests. |
4103 | + * Checksum and TSO tests. |
4104 | + * ptype tests. |
4105 | + * link_status_interrupt example application tests. |
4106 | + * l3fwd-power example application tests. |
4107 | + * Multi-process example applications tests. |
4108 | + |
4109 | + * Compilation tests with multiple configurations in the following OS/driver combinations are also passing: |
4110 | + |
4111 | + * Ubuntu 20.04.2 with MLNX_OFED_LINUX-5.3-1.0.0.1. |
4112 | + * Ubuntu 20.04.2 with rdma-core master (a66e2a5). |
4113 | + * Ubuntu 20.04.2 with rdma-core v28.0. |
4114 | + * Ubuntu 18.04.5 with rdma-core v17.1. |
4115 | + * Ubuntu 18.04.5 with rdma-core master (a66e2a5) (i386). |
4116 | + * Ubuntu 16.04.7 with rdma-core v22.7. |
4117 | + * Fedora 34 with rdma-core v35.0. |
4118 | + * Fedora 35 (Rawhide) with rdma-core v35.0 (only with gcc). |
4119 | + * CentOS 7 7.9.2009 with rdma-core master (a66e2a5). |
4120 | + * CentOS 7 7.9.2009 with MLNX_OFED_LINUX-5.3-1.0.0.1. |
4121 | + * CentOS 8 8.3.2011 with rdma-core master (7f2d460). |
4122 | + * OpenSUSE Leap 15.3 with rdma-core v31.0. |
4123 | + |
4124 | +19.11.9 Known Issues |
4125 | +~~~~~~~~~~~~~~~~~~~~ |
4126 | + |
4127 | +This time there are a few issues which were identified in the tests. But none |
4128 | +of them is an in-place regression. So far they are all issues with newer |
4129 | +compilers, toolchains and kernels that happen to be incompatible with the |
4130 | +19.11.x code. |
4131 | + |
4132 | +* Due to a kernel patch backport in SUSE Linux Enterprise Server 15 SP3 |
4133 | + [compilation of kni fails there](https://bugs.dpdk.org/show_bug.cgi?id=728). |
4134 | + A fix would break existing SP2 installation and |
4135 | + [further options are discussed](http://mails.dpdk.org/archives/stable/2021-June/031210.html) |
4136 | + |
4137 | +* A [Build issue with clang 12.0.1](https://bugs.dpdk.org/show_bug.cgi?id=745) |
4138 | + |
4139 | +* A make [build issue with Fedora 34 with GCC11](https://bugs.dpdk.org/show_bug.cgi?id=744) |
4140 | + |
4141 | +* Meson based [build issues with ICC-19.1.1](https://bugs.dpdk.org/show_bug.cgi?id=747) |
4142 | + |
4143 | +19.11.10 Release Notes |
4144 | + |
4145 | + |
4146 | + |
4147 | +19.11.10 Fixes |
4148 | +~~~~~~~~~~~~~~ |
4149 | + |
4150 | +* app/crypto-perf: fix out-of-place mempool allocation |
4151 | +* app/test: fix IPv6 header initialization |
4152 | +* app/testpmd: change port link speed without stopping all |
4153 | +* app/testpmd: fix help string for port reset |
4154 | +* app/testpmd: fix IPv4 checksum |
4155 | +* app/testpmd: fix MAC address after port reset |
4156 | +* app/testpmd: fix offloads for newly attached port |
4157 | +* app/testpmd: fix Tx checksum calculation for tunnel |
4158 | +* bitmap: fix buffer overrun in bitmap init |
4159 | +* bus: clarify log for non-NUMA-aware devices |
4160 | +* bus/dpaa: fix freeing in FMAN interface destructor |
4161 | +* common/mlx5: fix compatibility with OFED port query API |
4162 | +* common/mlx5: fix Netlink port name padding in probing |
4163 | +* common/mlx5: use new port query API if available |
4164 | +* cryptodev: fix freeing after device release |
4165 | +* crypto/mvsam: fix AES-GCM session parameters |
4166 | +* crypto/mvsam: fix capabilities |
4167 | +* crypto/mvsam: fix options parsing |
4168 | +* crypto/mvsam: fix session data reset |
4169 | +* crypto/octeontx: fix freeing after device release |
4170 | +* crypto/qat: fix Arm build with special memcpy |
4171 | +* devtools: fix file listing in maintainers check |
4172 | +* distributor: fix 128-bit write alignment |
4173 | +* doc: add limitation for ConnectX-4 with L2 in mlx5 guide |
4174 | +* doc: announce common prefix for ethdev |
4175 | +* doc: fix default burst size in testpmd |
4176 | +* doc: fix spelling |
4177 | +* drivers/net: fix memzone allocations for DMA memory |
4178 | +* ethdev: fix doc of flow action |
4179 | +* eventdev: fix event port setup in tx adapter |
4180 | +* flow_classify: fix leaking rules on delete |
4181 | +* (github-cpaelzer-stable/19.11) telemetry: fix race in telemetry control thread creation |
4182 | +* (HEAD -> 19.11, tag: v19.11.10-rc2, origin-stable/19.11) version: 19.11.10-rc2 |
4183 | +* ipc: stop mp control thread on cleanup |
4184 | +* kni: fix crash on userspace VA for segmented packets |
4185 | +* kni: fix mbuf allocation for kernel side use |
4186 | +* mempool/octeontx2: fix shift calculation |
4187 | +* net/bnxt: check access to possible null pointer |
4188 | +* net/bnxt: cleanup code |
4189 | +* net/bnxt: clear cached statistics |
4190 | +* net/bnxt: detect bad opaque in Rx completion |
4191 | +* net/bnxt: fix auto-negotiation on Whitney+ |
4192 | +* net/bnxt: fix check for PTP support in FW |
4193 | +* net/bnxt: fix error handling in VNIC prepare |
4194 | +* net/bnxt: fix error messages in VNIC prepare |
4195 | +* net/bnxt: fix missing barriers in completion handling |
4196 | +* net/bnxt: fix nested lock during bonding |
4197 | +* net/bnxt: fix ring and context memory allocation |
4198 | +* net/bnxt: fix Rx burst size constraint |
4199 | +* net/bnxt: fix Rx interrupt setting |
4200 | +* net/bnxt: fix scalar Tx completion handling |
4201 | +* net/bnxt: fix Tx descriptor status implementation |
4202 | +* net/bnxt: fix typo in log message |
4203 | +* net/bnxt: improve probing log message |
4204 | +* net/bnxt: invoke device removal event on recovery failure |
4205 | +* net/bnxt: remove unnecessary code |
4206 | +* net/bnxt: remove unnecessary comment |
4207 | +* net/bnxt: set flow error after tunnel redirection free |
4208 | +* net/bnxt: set flow error when free filter not available |
4209 | +* net/bnxt: use common function to free VNIC resource |
4210 | +* net/bnxt: workaround spurious zero stats in Thor |
4211 | +* net/bonding: check flow setting |
4212 | +* net/bonding: fix error message on flow verify |
4213 | +* net/ena: enable multi-segment in Tx offload flags |
4214 | +* net/ena: trigger reset on Tx prepare failure |
4215 | +* net/hinic/base: fix LRO |
4216 | +* net/hinic: increase protection of the VLAN |
4217 | +* net/hns3: fix delay for waiting to stop Rx/Tx |
4218 | +* net/hns3: fix filter parsing comment |
4219 | +* net/hns3: fix Tx prepare after stop |
4220 | +* net/hns3: fix VLAN strip log |
4221 | +* net/hns3: increase VF reset retry maximum |
4222 | +* net/i40e: fix descriptor scan on Arm |
4223 | +* net/i40e: fix multi-process shared data |
4224 | +* net/iavf: fix RSS key access out of bound |
4225 | +* net/iavf: fix Tx threshold check |
4226 | +* net/ice/base: fix first profile mask |
4227 | +* net/ice/base: revert change of first profile mask |
4228 | +* net/ice: fix default RSS key generation |
4229 | +* net/ice: fix memzone leak when firmware is missing |
4230 | +* net/ixgbe: fix flow entry access after freeing |
4231 | +* net/mlx5: fix incorrect r/w lock usage in DMA unmap |
4232 | +* net/mlx5: fix IPIP multi-tunnel validation |
4233 | +* net/mlx5: fix match MPLS over GRE with key |
4234 | +* net/mlx5: fix MPLS RSS expansion |
4235 | +* net/mlx5: fix overflow in mempool argument |
4236 | +* net/mlx5: fix representor interrupt handler |
4237 | +* net/mlx5: fix RoCE LAG bond device probing |
4238 | +* net/mlx5: fix RSS flow item expansion for GRE key |
4239 | +* net/mlx5: fix Rx/Tx queue checks |
4240 | +* net/mlx5: fix switchdev mode recognition |
4241 | +* net/mlx5: fix typo in vectorized Rx comments |
4242 | +* net/mlx5: limit implicit MPLS RSS expansion over GRE |
4243 | +* net/mlx5: limit inner RSS expansion for MPLS |
4244 | +* net/mlx5: remove redundant operations in NEON Rx |
4245 | +* net/mlx5: remove unsupported flow item MPLS over IP |
4246 | +* net/mlx5: workaround drop action with old kernel |
4247 | +* net/mvpp2: fix configured state dependency |
4248 | +* net/mvpp2: fix port speed overflow |
4249 | +* net/octeontx2: fix default MCAM allocation size |
4250 | +* net/octeontx2: fix flow creation limit on CN98xx |
4251 | +* net/octeontx2: use runtime LSO format indices |
4252 | +* net/octeontx/base: fix debug build with clang |
4253 | +* net/pfe: remove unnecessary null check |
4254 | +* net/sfc: fix MAC stats lock in xstats query by ID |
4255 | +* net/sfc: fix MAC stats update for stopped device |
4256 | +* net/sfc: fix reading adapter state without locking |
4257 | +* net/sfc: fix xstats query by ID according to ethdev |
4258 | +* net/sfc: fix xstats query by unsorted list of IDs |
4259 | +* net/softnic: fix connection memory leak |
4260 | +* net/softnic: fix memory leak as profile is freed |
4261 | +* net/virtio: fix aarch32 build |
4262 | +* net/virtio: fix refill order in packed ring datapath |
4263 | +* net/virtio: report maximum MTU in device info |
4264 | +* power: fix namespace for internal struct |
4265 | +* rib: fix max depth IPv6 lookup |
4266 | +* (tag: v19.11.10-rc1) version: 19.11.10-rc1 |
4267 | +* test/crypto: fix mbuf reset after null check |
4268 | +* test/crypto: fix mempool size for session-less |
4269 | +* test/crypto: fix typo in AES case |
4270 | +* test/crypto: fix typo in ESN case |
4271 | +* test/mbuf: fix virtual address conversion |
4272 | +* tests/eal: fix memory leak |
4273 | +* vhost/crypto: check request pointer before dereference |
4274 | +* vhost: fix crash on reconnect |
4275 | +* vhost: fix missing guest pages table NUMA realloc |
4276 | +* vhost: fix missing memory table NUMA realloc |
4277 | +* vhost: utilize dynamic memory allocator |
4278 | + |
4279 | +19.11.10 Validation |
4280 | +~~~~~~~~~~~~~~~~~~~ |
4281 | + |
4282 | +* [Intel(R) Testing](http://mails.dpdk.org/archives/stable/2021-August/033130.html) |
4283 | + |
4284 | + * Builds |
4285 | + |
4286 | + * Basic Intel NIC (ixgbe, i40e) testing |
4287 | + |
4288 | + * PF (i40e) |
4289 | + * PF (ixgbe) |
4290 | + * VF (i40e) |
4291 | + * VF (ixgbe) |
4292 | + * Compile Testing |
4293 | + * Intel NIC single core/NIC performance |
4294 | + |
4295 | + * Basic cryptodev and virtio testing |
4296 | + |
4297 | + * vhost/virtio basic loopback, PVP and performance test |
4298 | + * cryptodev Function/Performance |
4299 | + |
4300 | +* [Intel(R) Testing with Open vSwitch] |
4301 | + |
4302 | + * OVS build and link testing with OVS 2.13 (make based) |
4303 | + * OVS build and link testing with OVS 2.14 (make based) |
4304 | + * VSPERF tests |
4305 | + |
4306 | + * phy2phy_tput |
4307 | + * pvp_tput |
4308 | + * pvp_cont |
4309 | + * pvvp_tput |
4310 | + * pvpv_cont |
4311 | + * ovsdpdk_jumbo_p2p |
4312 | + * ovsdpdk_jumbo_pvp |
4313 | + * ovsdpdk_jumbo_p2p_upper_bound |
4314 | + * ovsdpdk_mq_pvp_rxqs_testpmd |
4315 | + * ovsdpdk_mq_pvp_rxqs_linux_bridge |
4316 | + |
4317 | +* [Canonical(R) Testing](http://mails.dpdk.org/archives/stable/2021-August/033126.html) |
4318 | + |
4319 | + * Build tests of DPDK & OVS 2.13.3 on Ubuntu 20.04 (meson based) |
4320 | + * Build tests of DPDK & OVS 2.13.3 on Ubuntu 20.10 (meson based) |
4321 | + * Functional and performance tests based on OVS-DPDK on x86_64 |
4322 | + * Autopkgtests for DPDK and OpenvSwitch |
4323 | + |
4324 | +* [Red Hat(R) Testing](http://mails.dpdk.org/archives/stable/2021-September/033218.html) |
4325 | + |
4326 | + * Platform |
4327 | + |
4328 | + * RHEL 8 |
4329 | + * Kernel 4.18 |
4330 | + * Qemu 6.0 |
4331 | + * X540-AT2 NIC(ixgbe, 10G) |
4332 | + * Tested on 19.11.9-RC3 |
4333 | + |
4334 | + * Tests |
4335 | + |
4336 | + * Guest with device assignment(PF) throughput testing(1G hugepage size): PASS |
4337 | + * Guest with device assignment(PF) throughput testing(2M hugepage size) : PASS |
4338 | + * Guest with device assignment(VF) throughput testing: PASS |
4339 | + * PVP (host dpdk testpmd as vswitch) 1Q: throughput testing: PASS |
4340 | + * PVP vhost-user 2Q throughput testing: PASS |
4341 | + * PVP vhost-user 1Q - cross numa node throughput testing: PASS |
4342 | + * Guest with vhost-user 2 queues throughput testing: PASS |
4343 | + * vhost-user reconnect with dpdk-client, qemu-server: qemu reconnect: PASS |
4344 | + * vhost-user reconnect with dpdk-client, qemu-server: ovs reconnect: PASS |
4345 | + * PVP 1Q live migration testing: PASS |
4346 | + * PVP 1Q cross numa node live migration testing: PASS |
4347 | + * Guest with ovs+dpdk+vhost-user 1Q live migration testing: PASS |
4348 | + * Guest with ovs+dpdk+vhost-user 1Q live migration testing (2M): PASS |
4349 | + * Guest with ovs+dpdk+vhost-user 2Q live migration testing: PASS |
4350 | + * Host PF + DPDK testing: PASS |
4351 | + * Host VF + DPDK testing: PASS |
4352 | + |
4353 | +* [Nvidia (R) Testing](http://mails.dpdk.org/archives/stable/2021-August/033131.html) |
4354 | + |
4355 | + * functional tests on Mellanox hardware |
4356 | + |
4357 | + * NIC: ConnectX-4 Lx / OS: Ubuntu 20.04 LTS / Driver: MLNX_OFED_LINUX-5.4-1.0.3.0 / Firmware: 14.31.1014 |
4358 | + * NIC: ConnectX-4 Lx / OS: Ubuntu 20.04 LTS / kernel: 5.14.0-rc7 / Driver: rdma-core v36.0 / Firmware: 14.31.1014 |
4359 | + * NIC: ConnectX-5 / OS: Ubuntu 20.04 LTS / Driver: MLNX_OFED_LINUX-5.4-1.0.3.0 / Firmware: 16.31.1014 |
4360 | + * NIC: ConnectX-5 / OS: Ubuntu 20.04 LTS / kernel: 5.14.0-rc7 / Driver: v36.0 / Firmware: 16.31.1014 |
4361 | + |
4362 | + * Basic functionality: |
4363 | + |
4364 | + * Send and receive multiple types of traffic. |
4365 | + * testpmd xstats counter test. |
4366 | + * testpmd timestamp test. |
4367 | + * Changing/checking link status through testpmd. |
4368 | + * RTE flow tests: Items: eth / vlan / ipv4 / ipv6 / tcp / udp / icmp / gre / nvgre / vxlan ip in ip / mplsoudp / mplsogre |
4369 | + * Actions: drop / queue / rss / mark / flag / jump / count / raw_encap / raw_decap / vxlan_encap / vxlan_decap / NAT / dec_ttl |
4370 | + * Some RSS tests. |
4371 | + * VLAN filtering, stripping and insertion tests. |
4372 | + * Checksum and TSO tests. |
4373 | + * ptype tests. |
4374 | + * link_status_interrupt example application tests. |
4375 | + * l3fwd-power example application tests. |
4376 | + * Multi-process example applications tests. |
4377 | + |
4378 | + * Compilation tests with multiple configurations in the following OS/driver combinations are also passing: |
4379 | + |
4380 | + * Ubuntu 20.04.2 with MLNX_OFED_LINUX-5.4-1.0.3.0. |
4381 | + * Ubuntu 20.04.2 with rdma-core master (64d1ae5). |
4382 | + * Ubuntu 20.04.2 with rdma-core v28.0. |
4383 | + * Ubuntu 18.04.5 with rdma-core v17.1. |
4384 | + * Ubuntu 18.04.5 with rdma-core master (5b0f5b2) (i386). |
4385 | + * Ubuntu 16.04.7 with rdma-core v22.7. |
4386 | + * Fedora 34 with rdma-core v36.0. |
4387 | + * Fedora 35 (Rawhide) with rdma-core v36.0 (only with gcc). |
4388 | + * CentOS 7 7.9.2009 with rdma-core master (64d1ae5). |
4389 | + * CentOS 7 7.9.2009 with MLNX_OFED_LINUX-5.4-1.0.3.0. |
4390 | + * CentOS 8 8.3.2011 with rdma-core master (64d1ae5). |
4391 | + * OpenSUSE Leap 15.3 with rdma-core v31.0. |
4392 | + |
4393 | +19.11.10 Known Issues |
4394 | +~~~~~~~~~~~~~~~~~~~~~ |
4395 | + |
4396 | +A few issues are still present, but none of them is an in-place regression. |
4397 | +So far they are all issues with newer compilers, toolchains and kernels that |
4398 | +happen to be incompatible with the 19.11.x code. |
4399 | + |
4400 | +* Due to a kernel patch backport in SUSE Linux Enterprise Server 15 SP3 |
4401 | + [compilation of kni fails there](https://bugs.dpdk.org/show_bug.cgi?id=728). |
4402 | + A fix would break existing SP2 installation and |
4403 | + [further options are discussed](http://mails.dpdk.org/archives/stable/2021-June/031210.html) |
4404 | + |
4405 | +* A [Build issue with clang 12.0.1](https://bugs.dpdk.org/show_bug.cgi?id=745) |
4406 | + |
4407 | +* A make [build issue with Fedora 34 with GCC11](https://bugs.dpdk.org/show_bug.cgi?id=744) |
4408 | + |
4409 | +* Meson based [build issues with ICC-19.1.1](https://bugs.dpdk.org/show_bug.cgi?id=747) |
4410 | diff --git a/doc/guides/rel_notes/release_2_2.rst b/doc/guides/rel_notes/release_2_2.rst |
4411 | index cea5c87..8273473 100644 |
4412 | --- a/doc/guides/rel_notes/release_2_2.rst |
4413 | +++ b/doc/guides/rel_notes/release_2_2.rst |
4414 | @@ -322,7 +322,7 @@ Drivers |
4415 | |
4416 | Several customers have reported a link flap issue on 82579. The symptoms |
4417 | are random and intermittent link losses when 82579 is connected to specific |
4418 | - switches. the Issue was root caused as an inter-operability problem between |
4419 | + switches. the Issue was root caused as an interoperability problem between |
4420 | the NIC and at least some Broadcom PHYs in the Energy Efficient Ethernet |
4421 | wake mechanism. |
4422 | |
4423 | diff --git a/doc/guides/sample_app_ug/l2_forward_cat.rst b/doc/guides/sample_app_ug/l2_forward_cat.rst |
4424 | index 0a81320..2b4651e 100644 |
4425 | --- a/doc/guides/sample_app_ug/l2_forward_cat.rst |
4426 | +++ b/doc/guides/sample_app_ug/l2_forward_cat.rst |
4427 | @@ -198,7 +198,7 @@ queried for system CPU information and L3CA capabilities via |
4428 | ``pqos_cap_get(...)`` and ``pqos_cap_get_type(..., PQOS_CAP_TYPE_L3CA, ...)`` |
4429 | calls. When all capability and topology information is collected, the requested |
4430 | CAT configuration is validated. A check is then performed (on per socket basis) |
4431 | -for a sufficient number of un-associated COS. COS are selected and |
4432 | +for a sufficient number of unassociated COS. COS are selected and |
4433 | configured via the ``pqos_l3ca_set(...)`` call. Finally, COS are associated to |
4434 | relevant CPUs via ``pqos_l3ca_assoc_set(...)`` calls. |
4435 | |
4436 | diff --git a/doc/guides/sample_app_ug/performance_thread.rst b/doc/guides/sample_app_ug/performance_thread.rst |
4437 | index 5fed464..a2db452 100644 |
4438 | --- a/doc/guides/sample_app_ug/performance_thread.rst |
4439 | +++ b/doc/guides/sample_app_ug/performance_thread.rst |
4440 | @@ -1194,7 +1194,7 @@ Tracing of events can be individually masked, and the mask may be programmed |
4441 | at run time. An unmasked event results in a callback that provides information |
4442 | about the event. The default callback simply prints trace information. The |
4443 | default mask is 0 (all events off) the mask can be modified by calling the |
4444 | -function ``lthread_diagniostic_set_mask()``. |
4445 | +function ``lthread_diagnostic_set_mask()``. |
4446 | |
4447 | It is possible register a user callback function to implement more |
4448 | sophisticated diagnostic functions. |
4449 | diff --git a/doc/guides/sample_app_ug/vhost.rst b/doc/guides/sample_app_ug/vhost.rst |
4450 | index a71ada6..66e804d 100644 |
4451 | --- a/doc/guides/sample_app_ug/vhost.rst |
4452 | +++ b/doc/guides/sample_app_ug/vhost.rst |
4453 | @@ -72,7 +72,7 @@ Run testpmd inside guest |
4454 | ~~~~~~~~~~~~~~~~~~~~~~~~ |
4455 | |
4456 | Make sure you have DPDK built inside the guest. Also make sure the |
4457 | -corresponding virtio-net PCI device is bond to a uio driver, which |
4458 | +corresponding virtio-net PCI device is bond to a UIO driver, which |
4459 | could be done by: |
4460 | |
4461 | .. code-block:: console |
4462 | diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst |
4463 | index 17a41c2..e727126 100644 |
4464 | --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst |
4465 | +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst |
4466 | @@ -3944,7 +3944,8 @@ This section lists supported pattern items and their attributes, if any. |
4467 | - ``gtp_psc``: match GTP PDU extension header with type 0x85. |
4468 | |
4469 | - ``pdu_type {unsigned}``: PDU type. |
4470 | - - ``qfi {unsigned}``: QoS flow identifier. |
4471 | + |
4472 | + - ``qfi {unsigned}``: PPP, RQI and QoS flow identifier. |
4473 | |
4474 | - ``pppoes``, ``pppoed``: match PPPoE header. |
4475 | |
4476 | @@ -4732,7 +4733,7 @@ Sample Raw encapsulation rule |
4477 | |
4478 | Raw encapsulation configuration can be set by the following commands |
4479 | |
4480 | -Eecapsulating VxLAN:: |
4481 | +Encapsulating VxLAN:: |
4482 | |
4483 | testpmd> set raw_encap 4 eth src is 10:11:22:33:44:55 / vlan tci is 1 |
4484 | inner_type is 0x0800 / ipv4 / udp dst is 4789 / vxlan vni |
4485 | diff --git a/drivers/bus/dpaa/base/fman/fman.c b/drivers/bus/dpaa/base/fman/fman.c |
4486 | index 6d77a7e..4affce4 100644 |
4487 | --- a/drivers/bus/dpaa/base/fman/fman.c |
4488 | +++ b/drivers/bus/dpaa/base/fman/fman.c |
4489 | @@ -50,7 +50,7 @@ if_destructor(struct __fman_if *__if) |
4490 | free(bp); |
4491 | } |
4492 | cleanup: |
4493 | - free(__if); |
4494 | + rte_free(__if); |
4495 | } |
4496 | |
4497 | static int |
4498 | diff --git a/drivers/bus/dpaa/base/fman/fman_hw.c b/drivers/bus/dpaa/base/fman/fman_hw.c |
4499 | index 9ab8e83..d28ed0b 100644 |
4500 | --- a/drivers/bus/dpaa/base/fman/fman_hw.c |
4501 | +++ b/drivers/bus/dpaa/base/fman/fman_hw.c |
4502 | @@ -1,6 +1,6 @@ |
4503 | /* SPDX-License-Identifier: BSD-3-Clause |
4504 | * |
4505 | - * Copyright 2017 NXP |
4506 | + * Copyright 2017,2020 NXP |
4507 | * |
4508 | */ |
4509 | |
4510 | @@ -219,20 +219,20 @@ fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats) |
4511 | struct memac_regs *regs = m->ccsr_map; |
4512 | |
4513 | /* read recved packet count */ |
4514 | - stats->ipackets = ((u64)in_be32(®s->rfrm_u)) << 32 | |
4515 | - in_be32(®s->rfrm_l); |
4516 | - stats->ibytes = ((u64)in_be32(®s->roct_u)) << 32 | |
4517 | - in_be32(®s->roct_l); |
4518 | - stats->ierrors = ((u64)in_be32(®s->rerr_u)) << 32 | |
4519 | - in_be32(®s->rerr_l); |
4520 | + stats->ipackets = (u64)in_be32(®s->rfrm_l) | |
4521 | + ((u64)in_be32(®s->rfrm_u)) << 32; |
4522 | + stats->ibytes = (u64)in_be32(®s->roct_l) | |
4523 | + ((u64)in_be32(®s->roct_u)) << 32; |
4524 | + stats->ierrors = (u64)in_be32(®s->rerr_l) | |
4525 | + ((u64)in_be32(®s->rerr_u)) << 32; |
4526 | |
4527 | /* read xmited packet count */ |
4528 | - stats->opackets = ((u64)in_be32(®s->tfrm_u)) << 32 | |
4529 | - in_be32(®s->tfrm_l); |
4530 | - stats->obytes = ((u64)in_be32(®s->toct_u)) << 32 | |
4531 | - in_be32(®s->toct_l); |
4532 | - stats->oerrors = ((u64)in_be32(®s->terr_u)) << 32 | |
4533 | - in_be32(®s->terr_l); |
4534 | + stats->opackets = (u64)in_be32(®s->tfrm_l) | |
4535 | + ((u64)in_be32(®s->tfrm_u)) << 32; |
4536 | + stats->obytes = (u64)in_be32(®s->toct_l) | |
4537 | + ((u64)in_be32(®s->toct_u)) << 32; |
4538 | + stats->oerrors = (u64)in_be32(®s->terr_l) | |
4539 | + ((u64)in_be32(®s->terr_u)) << 32; |
4540 | } |
4541 | |
4542 | void |
4543 | @@ -244,10 +244,9 @@ fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n) |
4544 | uint64_t base_offset = offsetof(struct memac_regs, reoct_l); |
4545 | |
4546 | for (i = 0; i < n; i++) |
4547 | - value[i] = ((u64)in_be32((char *)regs |
4548 | - + base_offset + 8 * i + 4)) << 32 | |
4549 | - ((u64)in_be32((char *)regs |
4550 | - + base_offset + 8 * i)); |
4551 | + value[i] = (((u64)in_be32((char *)regs + base_offset + 8 * i) | |
4552 | + (u64)in_be32((char *)regs + base_offset + |
4553 | + 8 * i + 4)) << 32); |
4554 | } |
4555 | |
4556 | void |
4557 | diff --git a/drivers/bus/dpaa/base/fman/netcfg_layer.c b/drivers/bus/dpaa/base/fman/netcfg_layer.c |
4558 | index 36eca88..2ec504c 100644 |
4559 | --- a/drivers/bus/dpaa/base/fman/netcfg_layer.c |
4560 | +++ b/drivers/bus/dpaa/base/fman/netcfg_layer.c |
4561 | @@ -8,7 +8,7 @@ |
4562 | #include <dpaa_of.h> |
4563 | #include <net/if.h> |
4564 | #include <sys/ioctl.h> |
4565 | -#include <error.h> |
4566 | +#include <err.h> |
4567 | #include <net/if_arp.h> |
4568 | #include <assert.h> |
4569 | #include <unistd.h> |
4570 | @@ -89,7 +89,7 @@ netcfg_acquire(void) |
4571 | */ |
4572 | skfd = socket(AF_PACKET, SOCK_RAW, 0); |
4573 | if (unlikely(skfd < 0)) { |
4574 | - error(0, errno, "%s(): open(SOCK_RAW)", __func__); |
4575 | + err(0, "%s(): open(SOCK_RAW)", __func__); |
4576 | return NULL; |
4577 | } |
4578 | |
4579 | diff --git a/drivers/bus/dpaa/base/qbman/bman_driver.c b/drivers/bus/dpaa/base/qbman/bman_driver.c |
4580 | index 750b756..ee35e03 100644 |
4581 | --- a/drivers/bus/dpaa/base/qbman/bman_driver.c |
4582 | +++ b/drivers/bus/dpaa/base/qbman/bman_driver.c |
4583 | @@ -11,6 +11,7 @@ |
4584 | #include <process.h> |
4585 | #include "bman_priv.h" |
4586 | #include <sys/ioctl.h> |
4587 | +#include <err.h> |
4588 | |
4589 | /* |
4590 | * Global variables of the max portal/pool number this bman version supported |
4591 | @@ -40,7 +41,8 @@ static int fsl_bman_portal_init(uint32_t idx, int is_shared) |
4592 | ret = pthread_getaffinity_np(pthread_self(), sizeof(cpu_set_t), |
4593 | &cpuset); |
4594 | if (ret) { |
4595 | - error(0, ret, "pthread_getaffinity_np()"); |
4596 | + errno = ret; |
4597 | + err(0, "pthread_getaffinity_np()"); |
4598 | return ret; |
4599 | } |
4600 | pcfg.cpu = -1; |
4601 | @@ -60,7 +62,8 @@ static int fsl_bman_portal_init(uint32_t idx, int is_shared) |
4602 | map.index = idx; |
4603 | ret = process_portal_map(&map); |
4604 | if (ret) { |
4605 | - error(0, ret, "process_portal_map()"); |
4606 | + errno = ret; |
4607 | + err(0, "process_portal_map()"); |
4608 | return ret; |
4609 | } |
4610 | /* Make the portal's cache-[enabled|inhibited] regions */ |
4611 | @@ -104,8 +107,10 @@ static int fsl_bman_portal_finish(void) |
4612 | cfg = bman_destroy_affine_portal(); |
4613 | DPAA_BUG_ON(cfg != &pcfg); |
4614 | ret = process_portal_unmap(&map.addr); |
4615 | - if (ret) |
4616 | - error(0, ret, "process_portal_unmap()"); |
4617 | + if (ret) { |
4618 | + errno = ret; |
4619 | + err(0, "process_portal_unmap()"); |
4620 | + } |
4621 | return ret; |
4622 | } |
4623 | |
4624 | diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c |
4625 | index e1dee17..2aa3b68 100644 |
4626 | --- a/drivers/bus/dpaa/base/qbman/qman_driver.c |
4627 | +++ b/drivers/bus/dpaa/base/qbman/qman_driver.c |
4628 | @@ -9,6 +9,8 @@ |
4629 | #include <process.h> |
4630 | #include "qman_priv.h" |
4631 | #include <sys/ioctl.h> |
4632 | +#include <err.h> |
4633 | + |
4634 | #include <rte_branch_prediction.h> |
4635 | |
4636 | /* Global variable containing revision id (even on non-control plane systems |
4637 | @@ -40,7 +42,8 @@ static int fsl_qman_portal_init(uint32_t index, int is_shared) |
4638 | map.index = index; |
4639 | ret = process_portal_map(&map); |
4640 | if (ret) { |
4641 | - error(0, ret, "process_portal_map()"); |
4642 | + errno = ret; |
4643 | + err(0, "process_portal_map()"); |
4644 | return ret; |
4645 | } |
4646 | qpcfg.channel = map.channel; |
4647 | @@ -86,8 +89,10 @@ static int fsl_qman_portal_finish(void) |
4648 | cfg = qman_destroy_affine_portal(NULL); |
4649 | DPAA_BUG_ON(cfg != &qpcfg); |
4650 | ret = process_portal_unmap(&map.addr); |
4651 | - if (ret) |
4652 | - error(0, ret, "process_portal_unmap()"); |
4653 | + if (ret) { |
4654 | + errno = ret; |
4655 | + err(0, "process_portal_unmap()"); |
4656 | + } |
4657 | return ret; |
4658 | } |
4659 | |
4660 | @@ -136,7 +141,8 @@ struct qman_portal *fsl_qman_fq_portal_create(int *fd) |
4661 | |
4662 | q_pcfg = kzalloc((sizeof(struct qm_portal_config)), 0); |
4663 | if (!q_pcfg) { |
4664 | - error(0, -1, "q_pcfg kzalloc failed"); |
4665 | + /* kzalloc sets errno */ |
4666 | + err(0, "q_pcfg kzalloc failed"); |
4667 | return NULL; |
4668 | } |
4669 | |
4670 | @@ -145,7 +151,8 @@ struct qman_portal *fsl_qman_fq_portal_create(int *fd) |
4671 | q_map.index = QBMAN_ANY_PORTAL_IDX; |
4672 | ret = process_portal_map(&q_map); |
4673 | if (ret) { |
4674 | - error(0, ret, "process_portal_map()"); |
4675 | + errno = ret; |
4676 | + err(0, "process_portal_map()"); |
4677 | kfree(q_pcfg); |
4678 | return NULL; |
4679 | } |
4680 | diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h |
4681 | index 4deea5e..2660234 100644 |
4682 | --- a/drivers/bus/dpaa/include/fsl_qman.h |
4683 | +++ b/drivers/bus/dpaa/include/fsl_qman.h |
4684 | @@ -16,7 +16,7 @@ extern "C" { |
4685 | #include <rte_eventdev.h> |
4686 | |
4687 | /* FQ lookups (turn this on for 64bit user-space) */ |
4688 | -#if (__WORDSIZE == 64) |
4689 | +#ifdef RTE_ARCH_64 |
4690 | #define CONFIG_FSL_QMAN_FQ_LOOKUP |
4691 | /* if FQ lookups are supported, this controls the number of initialised, |
4692 | * s/w-consumed FQs that can be supported at any one time. |
4693 | diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h |
4694 | index bf7bfae..e1f0461 100644 |
4695 | --- a/drivers/bus/dpaa/include/netcfg.h |
4696 | +++ b/drivers/bus/dpaa/include/netcfg.h |
4697 | @@ -9,7 +9,6 @@ |
4698 | #define __NETCFG_H |
4699 | |
4700 | #include <fman.h> |
4701 | -#include <argp.h> |
4702 | |
4703 | /* Configuration information related to a specific ethernet port */ |
4704 | struct fm_eth_port_cfg { |
4705 | diff --git a/drivers/bus/fslmc/fslmc_logs.h b/drivers/bus/fslmc/fslmc_logs.h |
4706 | index dd74cb7..a1e14dd 100644 |
4707 | --- a/drivers/bus/fslmc/fslmc_logs.h |
4708 | +++ b/drivers/bus/fslmc/fslmc_logs.h |
4709 | @@ -18,8 +18,6 @@ extern int dpaa2_logtype_bus; |
4710 | rte_log(RTE_LOG_DEBUG, dpaa2_logtype_bus, "fslmc: %s(): " fmt "\n", \ |
4711 | __func__, ##args) |
4712 | |
4713 | -#define BUS_INIT_FUNC_TRACE() DPAA2_BUS_DEBUG(" >>") |
4714 | - |
4715 | #define DPAA2_BUS_INFO(fmt, args...) \ |
4716 | DPAA2_BUS_LOG(INFO, fmt, ## args) |
4717 | #define DPAA2_BUS_ERR(fmt, args...) \ |
4718 | diff --git a/drivers/bus/fslmc/qbman/qbman_portal.c b/drivers/bus/fslmc/qbman/qbman_portal.c |
4719 | index 54bea97..e88cecc 100644 |
4720 | --- a/drivers/bus/fslmc/qbman/qbman_portal.c |
4721 | +++ b/drivers/bus/fslmc/qbman/qbman_portal.c |
4722 | @@ -311,17 +311,9 @@ struct qbman_swp *qbman_swp_init(const struct qbman_swp_desc *d) |
4723 | eqcr_pi = qbman_cinh_read(&p->sys, QBMAN_CINH_SWP_EQCR_PI); |
4724 | p->eqcr.pi = eqcr_pi & p->eqcr.pi_ci_mask; |
4725 | p->eqcr.pi_vb = eqcr_pi & QB_VALID_BIT; |
4726 | - if ((p->desc.qman_version & QMAN_REV_MASK) >= QMAN_REV_5000 |
4727 | - && (d->cena_access_mode == qman_cena_fastest_access)) |
4728 | - p->eqcr.ci = qbman_cinh_read(&p->sys, QBMAN_CINH_SWP_EQCR_PI) |
4729 | - & p->eqcr.pi_ci_mask; |
4730 | - else |
4731 | - p->eqcr.ci = qbman_cinh_read(&p->sys, QBMAN_CINH_SWP_EQCR_CI) |
4732 | - & p->eqcr.pi_ci_mask; |
4733 | - p->eqcr.available = p->eqcr.pi_ring_size - |
4734 | - qm_cyc_diff(p->eqcr.pi_ring_size, |
4735 | - p->eqcr.ci & (p->eqcr.pi_ci_mask<<1), |
4736 | - p->eqcr.pi & (p->eqcr.pi_ci_mask<<1)); |
4737 | + p->eqcr.ci = qbman_cinh_read(&p->sys, QBMAN_CINH_SWP_EQCR_CI) |
4738 | + & p->eqcr.pi_ci_mask; |
4739 | + p->eqcr.available = p->eqcr.pi_ring_size; |
4740 | |
4741 | portal_idx_map[p->desc.idx] = p; |
4742 | return p; |
4743 | diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c |
4744 | index ab73c00..cabfe69 100644 |
4745 | --- a/drivers/bus/pci/pci_common.c |
4746 | +++ b/drivers/bus/pci/pci_common.c |
4747 | @@ -18,6 +18,7 @@ |
4748 | #include <rte_bus.h> |
4749 | #include <rte_pci.h> |
4750 | #include <rte_bus_pci.h> |
4751 | +#include <rte_lcore.h> |
4752 | #include <rte_per_lcore.h> |
4753 | #include <rte_memory.h> |
4754 | #include <rte_eal.h> |
4755 | @@ -150,7 +151,9 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr, |
4756 | } |
4757 | |
4758 | if (dev->device.numa_node < 0) { |
4759 | - RTE_LOG(WARNING, EAL, " Invalid NUMA socket, default to 0\n"); |
4760 | + if (rte_socket_count() > 1) |
4761 | + RTE_LOG(INFO, EAL, "Device %s is not NUMA-aware, defaulting socket to 0\n", |
4762 | + dev->name); |
4763 | dev->device.numa_node = 0; |
4764 | } |
4765 | |
4766 | diff --git a/drivers/bus/vmbus/vmbus_common.c b/drivers/bus/vmbus/vmbus_common.c |
4767 | index 3adef01..34676c4 100644 |
4768 | --- a/drivers/bus/vmbus/vmbus_common.c |
4769 | +++ b/drivers/bus/vmbus/vmbus_common.c |
4770 | @@ -15,6 +15,7 @@ |
4771 | #include <rte_eal.h> |
4772 | #include <rte_tailq.h> |
4773 | #include <rte_devargs.h> |
4774 | +#include <rte_lcore.h> |
4775 | #include <rte_malloc.h> |
4776 | #include <rte_errno.h> |
4777 | #include <rte_memory.h> |
4778 | @@ -113,7 +114,9 @@ vmbus_probe_one_driver(struct rte_vmbus_driver *dr, |
4779 | dev->driver = dr; |
4780 | |
4781 | if (dev->device.numa_node < 0) { |
4782 | - VMBUS_LOG(WARNING, " Invalid NUMA socket, default to 0"); |
4783 | + if (rte_socket_count() > 1) |
4784 | + VMBUS_LOG(INFO, "Device %s is not NUMA-aware, defaulting socket to 0", |
4785 | + guid); |
4786 | dev->device.numa_node = 0; |
4787 | } |
4788 | |
4789 | diff --git a/drivers/common/dpaax/Makefile b/drivers/common/dpaax/Makefile |
4790 | index 59bd8ae..ff4f898 100644 |
4791 | --- a/drivers/common/dpaax/Makefile |
4792 | +++ b/drivers/common/dpaax/Makefile |
4793 | @@ -16,6 +16,7 @@ CFLAGS += -Wno-pointer-arith |
4794 | CFLAGS += -Wno-cast-qual |
4795 | |
4796 | CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax |
4797 | +CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib |
4798 | |
4799 | # versioning export map |
4800 | EXPORT_MAP := rte_common_dpaax_version.map |
4801 | @@ -23,7 +24,7 @@ EXPORT_MAP := rte_common_dpaax_version.map |
4802 | # |
4803 | # all source are stored in SRCS-y |
4804 | # |
4805 | -SRCS-y += dpaax_iova_table.c dpaa_of.c |
4806 | +SRCS-y += dpaax_iova_table.c dpaa_of.c caamflib.c |
4807 | |
4808 | LDLIBS += -lrte_eal |
4809 | |
4810 | diff --git a/drivers/common/dpaax/caamflib.c b/drivers/common/dpaax/caamflib.c |
4811 | new file mode 100644 |
4812 | index 0000000..55e2028 |
4813 | --- /dev/null |
4814 | +++ b/drivers/common/dpaax/caamflib.c |
4815 | @@ -0,0 +1,16 @@ |
4816 | +/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0) |
4817 | + * |
4818 | + * Copyright 2020 NXP |
4819 | + * |
4820 | + */ |
4821 | + |
4822 | +#include <rta.h> |
4823 | + |
4824 | +/* |
4825 | + * SEC HW block revision. |
4826 | + * |
4827 | + * This *must not be confused with SEC version*: |
4828 | + * - SEC HW block revision format is "v" |
4829 | + * - SEC revision format is "x.y" |
4830 | + */ |
4831 | +enum rta_sec_era rta_sec_era; |
4832 | diff --git a/drivers/common/dpaax/caamflib/compat.h b/drivers/common/dpaax/caamflib/compat.h |
4833 | index ce946cc..95d887a 100644 |
4834 | --- a/drivers/common/dpaax/caamflib/compat.h |
4835 | +++ b/drivers/common/dpaax/caamflib/compat.h |
4836 | @@ -11,7 +11,7 @@ |
4837 | #include <stdint.h> |
4838 | #include <errno.h> |
4839 | |
4840 | -#ifdef __GLIBC__ |
4841 | +#ifdef RTE_EXEC_ENV_LINUX |
4842 | #include <string.h> |
4843 | #include <stdlib.h> |
4844 | #include <stdio.h> |
4845 | @@ -24,7 +24,7 @@ |
4846 | #error "Undefined endianness" |
4847 | #endif |
4848 | |
4849 | -#else |
4850 | +#else /* !RTE_EXEC_ENV_LINUX */ |
4851 | #error Environment not supported! |
4852 | #endif |
4853 | |
4854 | @@ -40,7 +40,7 @@ |
4855 | #define __maybe_unused __attribute__((unused)) |
4856 | #endif |
4857 | |
4858 | -#if defined(__GLIBC__) && !defined(pr_debug) |
4859 | +#if !defined(pr_debug) |
4860 | #if !defined(SUPPRESS_PRINTS) && defined(RTA_DEBUG) |
4861 | #define pr_debug(fmt, ...) \ |
4862 | RTE_LOG(DEBUG, PMD, "%s(): " fmt "\n", __func__, ##__VA_ARGS__) |
4863 | @@ -49,7 +49,7 @@ |
4864 | #endif |
4865 | #endif /* pr_debug */ |
4866 | |
4867 | -#if defined(__GLIBC__) && !defined(pr_err) |
4868 | +#if !defined(pr_err) |
4869 | #if !defined(SUPPRESS_PRINTS) |
4870 | #define pr_err(fmt, ...) \ |
4871 | RTE_LOG(ERR, PMD, "%s(): " fmt "\n", __func__, ##__VA_ARGS__) |
4872 | @@ -58,7 +58,7 @@ |
4873 | #endif |
4874 | #endif /* pr_err */ |
4875 | |
4876 | -#if defined(__GLIBC__) && !defined(pr_warn) |
4877 | +#if !defined(pr_warn) |
4878 | #if !defined(SUPPRESS_PRINTS) |
4879 | #define pr_warn(fmt, ...) \ |
4880 | RTE_LOG(WARNING, PMD, "%s(): " fmt "\n", __func__, ##__VA_ARGS__) |
4881 | @@ -101,7 +101,7 @@ |
4882 | #endif |
4883 | |
4884 | /* Use Linux naming convention */ |
4885 | -#ifdef __GLIBC__ |
4886 | +#if defined(RTE_EXEC_ENV_LINUX) || defined(__GLIBC__) |
4887 | #define swab16(x) rte_bswap16(x) |
4888 | #define swab32(x) rte_bswap32(x) |
4889 | #define swab64(x) rte_bswap64(x) |
4890 | diff --git a/drivers/common/dpaax/compat.h b/drivers/common/dpaax/compat.h |
4891 | index 12c9d99..d2883d0 100644 |
4892 | --- a/drivers/common/dpaax/compat.h |
4893 | +++ b/drivers/common/dpaax/compat.h |
4894 | @@ -34,7 +34,6 @@ |
4895 | #include <assert.h> |
4896 | #include <dirent.h> |
4897 | #include <inttypes.h> |
4898 | -#include <error.h> |
4899 | #include <rte_byteorder.h> |
4900 | #include <rte_atomic.h> |
4901 | #include <rte_spinlock.h> |
4902 | diff --git a/drivers/common/dpaax/dpaax_iova_table.c b/drivers/common/dpaax/dpaax_iova_table.c |
4903 | index 98b076e..3f3be4f 100644 |
4904 | --- a/drivers/common/dpaax/dpaax_iova_table.c |
4905 | +++ b/drivers/common/dpaax/dpaax_iova_table.c |
4906 | @@ -369,8 +369,10 @@ dpaax_iova_table_dump(void) |
4907 | } |
4908 | |
4909 | DPAAX_DEBUG(" === Start of PA->VA Translation Table ==="); |
4910 | - if (dpaax_iova_table_p == NULL) |
4911 | + if (dpaax_iova_table_p == NULL) { |
4912 | DPAAX_DEBUG("\tNULL"); |
4913 | + return; |
4914 | + } |
4915 | |
4916 | entry = dpaax_iova_table_p->entries; |
4917 | for (i = 0; i < dpaax_iova_table_p->count; i++) { |
4918 | diff --git a/drivers/common/dpaax/meson.build b/drivers/common/dpaax/meson.build |
4919 | index d41bb50..dc3e26d 100644 |
4920 | --- a/drivers/common/dpaax/meson.build |
4921 | +++ b/drivers/common/dpaax/meson.build |
4922 | @@ -8,7 +8,9 @@ if not is_linux |
4923 | reason = 'only supported on linux' |
4924 | endif |
4925 | |
4926 | -sources = files('dpaax_iova_table.c', 'dpaa_of.c') |
4927 | +sources = files('dpaax_iova_table.c', 'dpaa_of.c', 'caamflib.c') |
4928 | + |
4929 | +includes += include_directories('caamflib') |
4930 | |
4931 | cflags += ['-D_GNU_SOURCE'] |
4932 | if cc.has_argument('-Wno-cast-qual') |
4933 | diff --git a/drivers/common/dpaax/rte_common_dpaax_version.map b/drivers/common/dpaax/rte_common_dpaax_version.map |
4934 | index f72eba7..837ce01 100644 |
4935 | --- a/drivers/common/dpaax/rte_common_dpaax_version.map |
4936 | +++ b/drivers/common/dpaax/rte_common_dpaax_version.map |
4937 | @@ -21,3 +21,7 @@ DPDK_20.0 { |
4938 | |
4939 | local: *; |
4940 | }; |
4941 | + |
4942 | +INTERNAL { |
4943 | + rta_sec_era; |
4944 | +}; |
4945 | diff --git a/drivers/common/octeontx2/otx2_dev.h b/drivers/common/octeontx2/otx2_dev.h |
4946 | index 7d9839c..61d8ff6 100644 |
4947 | --- a/drivers/common/octeontx2/otx2_dev.h |
4948 | +++ b/drivers/common/octeontx2/otx2_dev.h |
4949 | @@ -46,6 +46,9 @@ |
4950 | ((RVU_PCI_REV_MAJOR(otx2_dev_revid(dev)) == 0x0) && \ |
4951 | (RVU_PCI_REV_MIDR_ID(otx2_dev_revid(dev)) == 0x0)) |
4952 | |
4953 | +#define otx2_dev_is_98xx(dev) \ |
4954 | + (RVU_PCI_REV_MIDR_ID(otx2_dev_revid(dev)) == 0x3) |
4955 | + |
4956 | struct otx2_dev; |
4957 | |
4958 | /* Link status callback */ |
4959 | diff --git a/drivers/common/qat/qat_device.h b/drivers/common/qat/qat_device.h |
4960 | index c3f5ae8..7460dfd 100644 |
4961 | --- a/drivers/common/qat/qat_device.h |
4962 | +++ b/drivers/common/qat/qat_device.h |
4963 | @@ -29,7 +29,7 @@ struct qat_dev_cmd_param { |
4964 | enum qat_comp_num_im_buffers { |
4965 | QAT_NUM_INTERM_BUFS_GEN1 = 12, |
4966 | QAT_NUM_INTERM_BUFS_GEN2 = 20, |
4967 | - QAT_NUM_INTERM_BUFS_GEN3 = 20 |
4968 | + QAT_NUM_INTERM_BUFS_GEN3 = 64 |
4969 | }; |
4970 | |
4971 | struct qat_device_info { |
4972 | diff --git a/drivers/compress/qat/qat_comp.c b/drivers/compress/qat/qat_comp.c |
4973 | index 533e34f..cd06809 100644 |
4974 | --- a/drivers/compress/qat/qat_comp.c |
4975 | +++ b/drivers/compress/qat/qat_comp.c |
4976 | @@ -68,8 +68,8 @@ qat_comp_build_request(void *in_op, uint8_t *out_msg, |
4977 | ICP_QAT_FW_COMP_EOP |
4978 | : ICP_QAT_FW_COMP_NOT_EOP, |
4979 | ICP_QAT_FW_COMP_NOT_BFINAL, |
4980 | - ICP_QAT_FW_COMP_NO_CNV, |
4981 | - ICP_QAT_FW_COMP_NO_CNV_RECOVERY); |
4982 | + ICP_QAT_FW_COMP_CNV, |
4983 | + ICP_QAT_FW_COMP_CNV_RECOVERY); |
4984 | } |
4985 | |
4986 | if (likely(qat_xform->qat_comp_request_type == |
4987 | @@ -286,7 +286,8 @@ qat_comp_process_response(void **op, uint8_t *resp, void *op_cookie, |
4988 | rx_op->status = RTE_COMP_OP_STATUS_ERROR; |
4989 | rx_op->debug_status = ERR_CODE_QAT_COMP_WRONG_FW; |
4990 | *op = (void *)rx_op; |
4991 | - QAT_DP_LOG(ERR, "QAT has wrong firmware"); |
4992 | + QAT_DP_LOG(ERR, |
4993 | + "This QAT hardware doesn't support compression operation"); |
4994 | ++(*dequeue_err_count); |
4995 | return 0; |
4996 | } |
4997 | diff --git a/drivers/compress/qat/qat_comp_pmd.c b/drivers/compress/qat/qat_comp_pmd.c |
4998 | index 5cdabad..dafd3da 100644 |
4999 | --- a/drivers/compress/qat/qat_comp_pmd.c |
5000 | +++ b/drivers/compress/qat/qat_comp_pmd.c |
PPA: https:/ /launchpad. net/~ci- train-ppa- service/ +archive/ ubuntu/ 4666/+packages