Merge ~paelzer/ubuntu/+source/dpdk:bug-1836365-LTS-summer-2019-disco into ubuntu/+source/dpdk:ubuntu/disco-devel

Proposed by Christian Ehrhardt 
Status: Superseded
Proposed branch: ~paelzer/ubuntu/+source/dpdk:bug-1836365-LTS-summer-2019-disco
Merge into: ubuntu/+source/dpdk:ubuntu/disco-devel
Diff against target: 36185 lines (+15805/-0) (has conflicts)
550 files modified
.ci/linux-build.sh (+24/-0)
.ci/linux-setup.sh (+3/-0)
.gitignore (+4/-0)
.travis.yml (+98/-0)
MAINTAINERS (+13/-0)
app/pdump/main.c (+22/-0)
app/test-bbdev/test_bbdev.c (+21/-0)
app/test-bbdev/test_bbdev_perf.c (+14/-0)
app/test-crypto-perf/main.c (+8/-0)
app/test-eventdev/test_perf_common.c (+5/-0)
app/test-pmd/cmdline.c (+253/-0)
app/test-pmd/cmdline_flow.c (+150/-0)
app/test-pmd/cmdline_tm.c (+39/-0)
app/test-pmd/config.c (+19/-0)
app/test-pmd/csumonly.c (+4/-0)
app/test-pmd/testpmd.c (+113/-0)
app/test-pmd/testpmd.h (+12/-0)
buildtools/symlink-drivers-solibs.sh (+7/-0)
config/arm/meson.build (+28/-0)
config/meson.build (+10/-0)
config/x86/meson.build (+39/-0)
debian/.gitignore (+20/-0)
debian/.gitlab-ci.yml (+4/-0)
debian/README.source (+30/-0)
debian/changelog (+63/-0)
debian/control (+33/-0)
debian/gbp.conf (+7/-0)
debian/patches/0004-build-bump-minimum-Meson-version-to-0.47.1.patch (+4/-0)
debian/patches/series (+6/-0)
debian/rules (+10/-0)
devtools/check-git-log.sh (+7/-0)
devtools/check-symbol-change.sh (+51/-0)
devtools/checkpatches.sh (+16/-0)
devtools/test-build.sh (+27/-0)
devtools/test-meson-builds.sh (+21/-0)
doc/guides/compressdevs/overview.rst (+4/-0)
doc/guides/conf.py (+18/-0)
doc/guides/contributing/coding_style.rst (+7/-0)
doc/guides/contributing/documentation.rst (+33/-0)
doc/guides/contributing/patches.rst (+11/-0)
doc/guides/contributing/versioning.rst (+28/-0)
doc/guides/cryptodevs/aesni_mb.rst (+18/-0)
doc/guides/cryptodevs/features/aesni_gcm.ini (+8/-0)
doc/guides/cryptodevs/features/aesni_mb.ini (+27/-0)
doc/guides/cryptodevs/features/armv8.ini (+8/-0)
doc/guides/cryptodevs/features/caam_jr.ini (+8/-0)
doc/guides/cryptodevs/features/ccp.ini (+8/-0)
doc/guides/cryptodevs/features/default.ini (+12/-0)
doc/guides/cryptodevs/features/dpaa2_sec.ini (+8/-0)
doc/guides/cryptodevs/features/dpaa_sec.ini (+8/-0)
doc/guides/cryptodevs/features/kasumi.ini (+8/-0)
doc/guides/cryptodevs/features/mvsam.ini (+8/-0)
doc/guides/cryptodevs/features/null.ini (+8/-0)
doc/guides/cryptodevs/features/octeontx.ini (+8/-0)
doc/guides/cryptodevs/features/qat.ini (+8/-0)
doc/guides/cryptodevs/features/snow3g.ini (+8/-0)
doc/guides/cryptodevs/features/virtio.ini (+8/-0)
doc/guides/cryptodevs/features/zuc.ini (+8/-0)
doc/guides/cryptodevs/openssl.rst (+11/-0)
doc/guides/cryptodevs/overview.rst (+14/-0)
doc/guides/cryptodevs/qat.rst (+6/-0)
doc/guides/cryptodevs/scheduler.rst (+4/-0)
doc/guides/eventdevs/opdl.rst (+4/-0)
doc/guides/eventdevs/sw.rst (+8/-0)
doc/guides/howto/lm_bond_virtio_sriov.rst (+4/-0)
doc/guides/howto/lm_virtio_vhost_user.rst (+8/-0)
doc/guides/howto/rte_flow.rst (+12/-0)
doc/guides/howto/virtio_user_as_exceptional_path.rst (+16/-0)
doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst (+24/-0)
doc/guides/linux_gsg/sys_reqs.rst (+16/-0)
doc/guides/nics/atlantic.rst (+4/-0)
doc/guides/nics/cxgbe.rst (+8/-0)
doc/guides/nics/dpaa.rst (+4/-0)
doc/guides/nics/dpaa2.rst (+4/-0)
doc/guides/nics/enetc.rst (+4/-0)
doc/guides/nics/enic.rst (+25/-0)
doc/guides/nics/features.rst (+8/-0)
doc/guides/nics/features/qede.ini (+4/-0)
doc/guides/nics/i40e.rst (+13/-0)
doc/guides/nics/ifc.rst (+6/-0)
doc/guides/nics/ixgbe.rst (+5/-0)
doc/guides/nics/kni.rst (+4/-0)
doc/guides/nics/mlx5.rst (+47/-0)
doc/guides/nics/mvpp2.rst (+4/-0)
doc/guides/nics/netvsc.rst (+4/-0)
doc/guides/nics/sfc_efx.rst (+20/-0)
doc/guides/nics/szedata2.rst (+4/-0)
doc/guides/nics/tap.rst (+4/-0)
doc/guides/platform/dpaa.rst (+8/-0)
doc/guides/platform/dpaa2.rst (+8/-0)
doc/guides/prog_guide/bbdev.rst (+8/-0)
doc/guides/prog_guide/compressdev.rst (+12/-0)
doc/guides/prog_guide/cryptodev_lib.rst (+24/-0)
doc/guides/prog_guide/dev_kit_build_system.rst (+7/-0)
doc/guides/prog_guide/efd_lib.rst (+4/-0)
doc/guides/prog_guide/env_abstraction_layer.rst (+39/-0)
doc/guides/prog_guide/event_ethernet_rx_adapter.rst (+10/-0)
doc/guides/prog_guide/eventdev.rst (+12/-0)
doc/guides/prog_guide/generic_receive_offload_lib.rst (+22/-0)
doc/guides/prog_guide/kernel_nic_interface.rst (+4/-0)
doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst (+16/-0)
doc/guides/prog_guide/lpm_lib.rst (+4/-0)
doc/guides/prog_guide/metrics_lib.rst (+4/-0)
doc/guides/prog_guide/multi_proc_support.rst (+32/-0)
doc/guides/prog_guide/poll_mode_drv.rst (+6/-0)
doc/guides/prog_guide/power_man.rst (+12/-0)
doc/guides/prog_guide/profile_app.rst (+8/-0)
doc/guides/prog_guide/rte_flow.rst (+30/-0)
doc/guides/prog_guide/rte_security.rst (+40/-0)
doc/guides/prog_guide/traffic_management.rst (+4/-0)
doc/guides/prog_guide/vhost_lib.rst (+4/-0)
doc/guides/rawdevs/ifpga_rawdev.rst (+4/-0)
doc/guides/rel_notes/known_issues.rst (+48/-0)
doc/guides/rel_notes/release_17_11.rst (+20/-0)
doc/guides/rel_notes/release_18_11.rst (+830/-0)
doc/guides/sample_app_ug/bbdev_app.rst (+8/-0)
doc/guides/sample_app_ug/eventdev_pipeline.rst (+4/-0)
doc/guides/sample_app_ug/flow_filtering.rst (+61/-0)
doc/guides/sample_app_ug/intro.rst (+4/-0)
doc/guides/sample_app_ug/ip_pipeline.rst (+8/-0)
doc/guides/sample_app_ug/ipsec_secgw.rst (+5/-0)
doc/guides/sample_app_ug/performance_thread.rst (+5/-0)
doc/guides/sample_app_ug/qos_metering.rst (+4/-0)
doc/guides/sample_app_ug/test_pipeline.rst (+4/-0)
doc/guides/sample_app_ug/vhost.rst (+8/-0)
doc/guides/sample_app_ug/vhost_scsi.rst (+4/-0)
doc/guides/sample_app_ug/vm_power_management.rst (+30/-0)
doc/guides/testpmd_app_ug/run_app.rst (+33/-0)
doc/guides/testpmd_app_ug/testpmd_funcs.rst (+248/-0)
doc/guides/tools/cryptoperf.rst (+36/-0)
doc/guides/tools/proc_info.rst (+4/-0)
doc/guides/tools/testbbdev.rst (+20/-0)
drivers/baseband/turbo_sw/Makefile (+5/-0)
drivers/bus/dpaa/base/fman/fman_hw.c (+8/-0)
drivers/bus/dpaa/dpaa_bus.c (+59/-0)
drivers/bus/fslmc/fslmc_bus.c (+50/-0)
drivers/bus/fslmc/fslmc_vfio.c (+4/-0)
drivers/bus/fslmc/portal/dpaa2_hw_dpio.c (+112/-0)
drivers/bus/fslmc/qbman/include/compat.h (+7/-0)
drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h (+7/-0)
drivers/bus/fslmc/qbman/qbman_debug.c (+5/-0)
drivers/bus/fslmc/qbman/qbman_portal.c (+15/-0)
drivers/bus/fslmc/qbman/qbman_sys.h (+4/-0)
drivers/bus/ifpga/ifpga_bus.c (+25/-0)
drivers/bus/ifpga/rte_bus_ifpga.h (+11/-0)
drivers/bus/pci/linux/pci_vfio.c (+4/-0)
drivers/bus/vdev/vdev.c (+19/-0)
drivers/bus/vmbus/linux/vmbus_uio.c (+77/-0)
drivers/bus/vmbus/private.h (+9/-0)
drivers/bus/vmbus/vmbus_channel.c (+31/-0)
drivers/bus/vmbus/vmbus_common_uio.c (+34/-0)
drivers/common/cpt/cpt_ucode.h (+4/-0)
drivers/common/qat/qat_qp.c (+40/-0)
drivers/common/qat/qat_qp.h (+5/-0)
drivers/compress/isal/isal_compress_pmd.c (+10/-0)
drivers/compress/isal/isal_compress_pmd_ops.c (+15/-0)
drivers/compress/qat/qat_comp.c (+54/-0)
drivers/compress/qat/qat_comp.h (+5/-0)
drivers/compress/qat/qat_comp_pmd.c (+17/-0)
drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c (+8/-0)
drivers/crypto/caam_jr/caam_jr.c (+12/-0)
drivers/crypto/caam_jr/caam_jr_uio.c (+26/-0)
drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c (+40/-0)
drivers/crypto/dpaa2_sec/hw/desc/pdcp.h (+5/-0)
drivers/crypto/dpaa_sec/dpaa_sec.c (+13/-0)
drivers/crypto/kasumi/meson.build (+10/-0)
drivers/crypto/meson.build (+4/-0)
drivers/crypto/null/null_crypto_pmd_ops.c (+8/-0)
drivers/crypto/openssl/rte_openssl_pmd.c (+21/-0)
drivers/crypto/openssl/rte_openssl_pmd_ops.c (+8/-0)
drivers/crypto/qat/qat_sym.c (+27/-0)
drivers/crypto/qat/qat_sym_session.c (+24/-0)
drivers/crypto/snow3g/meson.build (+13/-0)
drivers/crypto/snow3g/rte_snow3g_pmd_ops.c (+8/-0)
drivers/crypto/virtio/virtio_logs.h (+7/-0)
drivers/crypto/virtio/virtio_rxtx.c (+5/-0)
drivers/crypto/zuc/meson.build (+10/-0)
drivers/crypto/zuc/rte_zuc_pmd_ops.c (+8/-0)
drivers/event/dpaa2/dpaa2_eventdev.h (+5/-0)
drivers/event/dpaa2/dpaa2_eventdev_logs.h (+4/-0)
drivers/event/dsw/dsw_evdev.c (+18/-0)
drivers/event/meson.build (+8/-0)
drivers/event/opdl/opdl_evdev.c (+12/-0)
drivers/event/opdl/opdl_evdev_xstats.c (+6/-0)
drivers/event/opdl/opdl_ring.h (+16/-0)
drivers/event/sw/sw_evdev_selftest.c (+44/-0)
drivers/mempool/dpaa2/dpaa2_hw_mempool.c (+5/-0)
drivers/mempool/dpaa2/dpaa2_hw_mempool_logs.h (+4/-0)
drivers/net/af_packet/rte_eth_af_packet.c (+4/-0)
drivers/net/atlantic/atl_ethdev.c (+126/-0)
drivers/net/atlantic/atl_rxtx.c (+42/-0)
drivers/net/atlantic/atl_types.h (+17/-0)
drivers/net/atlantic/hw_atl/hw_atl_b0.c (+24/-0)
drivers/net/atlantic/hw_atl/hw_atl_b0.h (+5/-0)
drivers/net/atlantic/hw_atl/hw_atl_utils.c (+25/-0)
drivers/net/atlantic/hw_atl/hw_atl_utils.h (+14/-0)
drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c (+168/-0)
drivers/net/avf/avf_ethdev.c (+7/-0)
drivers/net/avf/base/avf_adminq_cmd.h (+4/-0)
drivers/net/axgbe/axgbe_common.h (+6/-0)
drivers/net/bnx2x/bnx2x.c (+235/-0)
drivers/net/bnx2x/bnx2x.h (+26/-0)
drivers/net/bnx2x/bnx2x_ethdev.c (+72/-0)
drivers/net/bnx2x/bnx2x_ethdev.h (+4/-0)
drivers/net/bnx2x/bnx2x_rxtx.c (+26/-0)
drivers/net/bnx2x/bnx2x_rxtx.h (+5/-0)
drivers/net/bnx2x/ecore_hsi.h (+4/-0)
drivers/net/bnx2x/ecore_reg.h (+4/-0)
drivers/net/bnx2x/ecore_sp.c (+35/-0)
drivers/net/bnx2x/ecore_sp.h (+12/-0)
drivers/net/bnx2x/elink.h (+4/-0)
drivers/net/bnxt/bnxt.h (+4/-0)
drivers/net/bnxt/bnxt_ethdev.c (+25/-0)
drivers/net/bnxt/bnxt_rxq.c (+5/-0)
drivers/net/bnxt/bnxt_rxr.c (+8/-0)
drivers/net/bonding/rte_eth_bond_8023ad.c (+35/-0)
drivers/net/bonding/rte_eth_bond_8023ad_private.h (+4/-0)
drivers/net/bonding/rte_eth_bond_alb.c (+7/-0)
drivers/net/bonding/rte_eth_bond_api.c (+27/-0)
drivers/net/bonding/rte_eth_bond_pmd.c (+225/-0)
drivers/net/bonding/rte_eth_bond_private.h (+19/-0)
drivers/net/cxgbe/base/t4_hw.c (+4/-0)
drivers/net/cxgbe/base/t4_pci_id_tbl.h (+71/-0)
drivers/net/cxgbe/cxgbe.h (+19/-0)
drivers/net/cxgbe/cxgbe_ethdev.c (+29/-0)
drivers/net/cxgbe/cxgbe_flow.c (+7/-0)
drivers/net/cxgbe/cxgbe_main.c (+88/-0)
drivers/net/cxgbe/cxgbevf_main.c (+14/-0)
drivers/net/cxgbe/sge.c (+64/-0)
drivers/net/dpaa/dpaa_ethdev.c (+9/-0)
drivers/net/dpaa2/dpaa2_ethdev.c (+16/-0)
drivers/net/dpaa2/dpaa2_pmd_logs.h (+4/-0)
drivers/net/e1000/base/e1000_82575.h (+8/-0)
drivers/net/e1000/base/e1000_ich8lan.c (+4/-0)
drivers/net/e1000/em_rxtx.c (+5/-0)
drivers/net/e1000/igb_ethdev.c (+71/-0)
drivers/net/ena/ena_ethdev.c (+267/-0)
drivers/net/enetc/enetc_ethdev.c (+9/-0)
drivers/net/enetc/enetc_rxtx.c (+18/-0)
drivers/net/enic/enic.h (+13/-0)
drivers/net/enic/enic_clsf.c (+50/-0)
drivers/net/enic/enic_flow.c (+608/-0)
drivers/net/enic/enic_main.c (+15/-0)
drivers/net/enic/enic_res.c (+6/-0)
drivers/net/enic/enic_rxtx_common.h (+5/-0)
drivers/net/fm10k/fm10k_ethdev.c (+4/-0)
drivers/net/fm10k/fm10k_rxtx.c (+13/-0)
drivers/net/fm10k/fm10k_rxtx_vec.c (+7/-0)
drivers/net/i40e/base/i40e_type.h (+4/-0)
drivers/net/i40e/i40e_ethdev.c (+220/-0)
drivers/net/i40e/i40e_ethdev.h (+6/-0)
drivers/net/i40e/i40e_ethdev_vf.c (+55/-0)
drivers/net/i40e/i40e_flow.c (+11/-0)
drivers/net/i40e/i40e_pf.c (+31/-0)
drivers/net/i40e/i40e_rxtx.c (+33/-0)
drivers/net/i40e/rte_pmd_i40e.c (+17/-0)
drivers/net/i40e/rte_pmd_i40e.h (+8/-0)
drivers/net/ifc/base/ifcvf.h (+4/-0)
drivers/net/ifc/ifcvf_vdpa.c (+10/-0)
drivers/net/ixgbe/base/ixgbe_82599.c (+5/-0)
drivers/net/ixgbe/base/ixgbe_phy.c (+28/-0)
drivers/net/ixgbe/base/ixgbe_phy.h (+4/-0)
drivers/net/ixgbe/base/ixgbe_type.h (+5/-0)
drivers/net/ixgbe/base/ixgbe_x550.c (+10/-0)
drivers/net/ixgbe/ixgbe_ethdev.c (+35/-0)
drivers/net/ixgbe/ixgbe_ethdev.h (+6/-0)
drivers/net/ixgbe/ixgbe_pf.c (+23/-0)
drivers/net/ixgbe/ixgbe_rxtx.c (+40/-0)
drivers/net/kni/rte_eth_kni.c (+10/-0)
drivers/net/mlx4/mlx4.c (+28/-0)
drivers/net/mlx4/mlx4.h (+29/-0)
drivers/net/mlx4/mlx4_ethdev.c (+76/-0)
drivers/net/mlx4/mlx4_flow.c (+125/-0)
drivers/net/mlx4/mlx4_flow.h (+7/-0)
drivers/net/mlx4/mlx4_intr.c (+71/-0)
drivers/net/mlx4/mlx4_mr.c (+87/-0)
drivers/net/mlx4/mlx4_rxq.c (+88/-0)
drivers/net/mlx4/mlx4_rxtx.h (+27/-0)
drivers/net/mlx4/mlx4_txq.c (+20/-0)
drivers/net/mlx5/Makefile (+8/-0)
drivers/net/mlx5/meson.build (+5/-0)
drivers/net/mlx5/mlx5.c (+78/-0)
drivers/net/mlx5/mlx5.h (+10/-0)
drivers/net/mlx5/mlx5_defs.h (+8/-0)
drivers/net/mlx5/mlx5_ethdev.c (+56/-0)
drivers/net/mlx5/mlx5_flow.c (+146/-0)
drivers/net/mlx5/mlx5_flow.h (+4/-0)
drivers/net/mlx5/mlx5_flow_dv.c (+40/-0)
drivers/net/mlx5/mlx5_flow_tcf.c (+795/-0)
drivers/net/mlx5/mlx5_flow_verbs.c (+34/-0)
drivers/net/mlx5/mlx5_mac.c (+8/-0)
drivers/net/mlx5/mlx5_mr.c (+97/-0)
drivers/net/mlx5/mlx5_nl.c (+24/-0)
drivers/net/mlx5/mlx5_rss.c (+20/-0)
drivers/net/mlx5/mlx5_rxmode.c (+16/-0)
drivers/net/mlx5/mlx5_rxq.c (+160/-0)
drivers/net/mlx5/mlx5_rxtx.c (+9/-0)
drivers/net/mlx5/mlx5_rxtx.h (+23/-0)
drivers/net/mlx5/mlx5_rxtx_vec.c (+8/-0)
drivers/net/mlx5/mlx5_rxtx_vec.h (+19/-0)
drivers/net/mlx5/mlx5_rxtx_vec_neon.h (+18/-0)
drivers/net/mlx5/mlx5_rxtx_vec_sse.h (+17/-0)
drivers/net/mlx5/mlx5_socket.c (+16/-0)
drivers/net/mlx5/mlx5_stats.c (+28/-0)
drivers/net/mlx5/mlx5_trigger.c (+32/-0)
drivers/net/mlx5/mlx5_txq.c (+97/-0)
drivers/net/mlx5/mlx5_vlan.c (+12/-0)
drivers/net/mvpp2/mrvl_mtr.c (+4/-0)
drivers/net/netvsc/hn_ethdev.c (+28/-0)
drivers/net/netvsc/hn_nvs.c (+6/-0)
drivers/net/netvsc/hn_rxtx.c (+62/-0)
drivers/net/netvsc/hn_var.h (+44/-0)
drivers/net/netvsc/hn_vf.c (+129/-0)
drivers/net/nfp/nfp_net.c (+89/-0)
drivers/net/nfp/nfp_net_ctrl.h (+8/-0)
drivers/net/nfp/nfp_net_pmd.h (+8/-0)
drivers/net/nfp/nfpcore/nfp-common/nfp_cppat.h (+6/-0)
drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c (+28/-0)
drivers/net/nfp/nfpcore/nfp_cppcore.c (+12/-0)
drivers/net/octeontx/octeontx_ethdev.h (+4/-0)
drivers/net/pcap/rte_eth_pcap.c (+9/-0)
drivers/net/qede/base/common_hsi.h (+6/-0)
drivers/net/qede/base/ecore_hsi_common.h (+4/-0)
drivers/net/qede/base/ecore_hsi_eth.h (+4/-0)
drivers/net/qede/base/ecore_hw_defs.h (+4/-0)
drivers/net/qede/qede_ethdev.c (+10/-0)
drivers/net/qede/qede_rxtx.c (+102/-0)
drivers/net/qede/qede_rxtx.h (+5/-0)
drivers/net/ring/rte_eth_ring.c (+135/-0)
drivers/net/sfc/base/efx_tx.c (+5/-0)
drivers/net/sfc/efsys.h (+4/-0)
drivers/net/sfc/sfc.c (+9/-0)
drivers/net/sfc/sfc.h (+13/-0)
drivers/net/sfc/sfc_debug.h (+5/-0)
drivers/net/sfc/sfc_ef10_tx.c (+27/-0)
drivers/net/sfc/sfc_ethdev.c (+146/-0)
drivers/net/sfc/sfc_log.h (+5/-0)
drivers/net/sfc/sfc_mcdi.c (+5/-0)
drivers/net/sfc/sfc_port.c (+20/-0)
drivers/net/sfc/sfc_rx.c (+27/-0)
drivers/net/sfc/sfc_rx.h (+7/-0)
drivers/net/sfc/sfc_tso.c (+13/-0)
drivers/net/sfc/sfc_tso.h (+19/-0)
drivers/net/sfc/sfc_tx.c (+25/-0)
drivers/net/softnic/rte_eth_softnic_flow.c (+9/-0)
drivers/net/tap/rte_eth_tap.c (+123/-0)
drivers/net/tap/tap_bpf_program.c (+4/-0)
drivers/net/tap/tap_tcmsgs.c (+4/-0)
drivers/net/vdev_netvsc/vdev_netvsc.c (+10/-0)
drivers/net/vhost/rte_eth_vhost.c (+3/-0)
drivers/net/virtio/virtio_ethdev.c (+44/-0)
drivers/net/virtio/virtio_ethdev.h (+5/-0)
drivers/net/virtio/virtio_rxtx.c (+47/-0)
drivers/net/virtio/virtio_user/vhost.h (+5/-0)
drivers/net/virtio/virtio_user/vhost_kernel_tap.c (+22/-0)
drivers/net/virtio/virtio_user/vhost_user.c (+7/-0)
drivers/net/virtio/virtio_user/virtio_user_dev.c (+12/-0)
drivers/net/virtio/virtio_user/virtio_user_dev.h (+4/-0)
drivers/net/virtio/virtio_user_ethdev.c (+45/-0)
drivers/net/virtio/virtqueue.h (+8/-0)
drivers/net/vmxnet3/vmxnet3_ethdev.c (+4/-0)
drivers/net/vmxnet3/vmxnet3_rxtx.c (+5/-0)
drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c (+5/-0)
drivers/raw/dpaa2_qdma/dpaa2_qdma.c (+35/-0)
drivers/raw/dpaa2_qdma/rte_pmd_dpaa2_qdma.h (+8/-0)
drivers/raw/ifpga_rawdev/base/opae_hw_api.c (+19/-0)
drivers/raw/ifpga_rawdev/base/opae_hw_api.h (+5/-0)
drivers/raw/ifpga_rawdev/ifpga_rawdev.c (+22/-0)
drivers/raw/ifpga_rawdev/ifpga_rawdev.h (+5/-0)
drivers/raw/skeleton_rawdev/skeleton_rawdev.c (+11/-0)
examples/bond/main.c (+34/-0)
examples/ethtool/lib/rte_ethtool.h (+8/-0)
examples/fips_validation/main.c (+17/-0)
examples/flow_filtering/flow_blocks.c (+25/-0)
examples/ip_pipeline/meson.build (+4/-0)
examples/ipsec-secgw/Makefile (+4/-0)
examples/ipsec-secgw/esp.c (+9/-0)
examples/ipsec-secgw/ipsec-secgw.c (+227/-0)
examples/ipsec-secgw/ipsec.c (+84/-0)
examples/ipsec-secgw/ipsec.h (+33/-0)
examples/ipsec-secgw/sa.c (+80/-0)
examples/ipsec-secgw/sp4.c (+69/-0)
examples/ipsec-secgw/sp6.c (+69/-0)
examples/kni/main.c (+34/-0)
examples/l2fwd-cat/cat.c (+4/-0)
examples/multi_process/client_server_mp/mp_server/init.c (+15/-0)
examples/performance-thread/common/lthread_api.h (+20/-0)
examples/tep_termination/main.c (+3/-0)
examples/vhost/main.c (+19/-0)
examples/vhost_crypto/main.c (+9/-0)
examples/vhost_crypto/meson.build (+4/-0)
examples/vhost_scsi/vhost_scsi.c (+9/-0)
examples/vm_power_manager/channel_monitor.c (+13/-0)
examples/vm_power_manager/main.c (+37/-0)
examples/vm_power_manager/oob_monitor_x86.c (+31/-0)
examples/vm_power_manager/power_manager.c (+4/-0)
kernel/linux/kni/compat.h (+12/-0)
kernel/linux/kni/ethtool/igb/igb_main.c (+19/-0)
kernel/linux/kni/ethtool/igb/kcompat.h (+18/-0)
kernel/linux/kni/ethtool/ixgbe/kcompat.h (+7/-0)
kernel/linux/kni/kni_misc.c (+4/-0)
lib/librte_acl/acl_vect.h (+8/-0)
lib/librte_acl/meson.build (+4/-0)
lib/librte_bbdev/rte_bbdev.h (+8/-0)
lib/librte_bitratestats/rte_bitrate.c (+12/-0)
lib/librte_bpf/rte_bpf.h (+12/-0)
lib/librte_bpf/rte_bpf_ethdev.h (+8/-0)
lib/librte_cfgfile/rte_cfgfile.c (+12/-0)
lib/librte_compressdev/rte_comp.h (+8/-0)
lib/librte_cryptodev/rte_crypto_asym.h (+20/-0)
lib/librte_cryptodev/rte_cryptodev.c (+8/-0)
lib/librte_cryptodev/rte_cryptodev.h (+4/-0)
lib/librte_distributor/rte_distributor_private.h (+4/-0)
lib/librte_eal/bsdapp/eal/eal.c (+71/-0)
lib/librte_eal/bsdapp/eal/eal_hugepage_info.c (+4/-0)
lib/librte_eal/common/eal_common_memory.c (+37/-0)
lib/librte_eal/common/eal_common_memzone.c (+16/-0)
lib/librte_eal/common/eal_common_options.c (+297/-0)
lib/librte_eal/common/eal_common_proc.c (+117/-0)
lib/librte_eal/common/eal_common_thread.c (+15/-0)
lib/librte_eal/common/eal_filesystem.h (+14/-0)
lib/librte_eal/common/eal_internal_cfg.h (+15/-0)
lib/librte_eal/common/eal_options.h (+9/-0)
lib/librte_eal/common/eal_private.h (+11/-0)
lib/librte_eal/common/hotplug_mp.c (+14/-0)
lib/librte_eal/common/include/arch/ppc_64/rte_atomic.h (+8/-0)
lib/librte_eal/common/include/generic/rte_atomic.h (+12/-0)
lib/librte_eal/common/include/generic/rte_cycles.h (+4/-0)
lib/librte_eal/common/include/generic/rte_rwlock.h (+26/-0)
lib/librte_eal/common/include/generic/rte_spinlock.h (+26/-0)
lib/librte_eal/common/include/generic/rte_vect.h (+4/-0)
lib/librte_eal/common/include/rte_class.h (+4/-0)
lib/librte_eal/common/include/rte_common.h (+8/-0)
lib/librte_eal/common/include/rte_eal.h (+42/-0)
lib/librte_eal/common/include/rte_lcore.h (+21/-0)
lib/librte_eal/common/include/rte_log.h (+4/-0)
lib/librte_eal/common/include/rte_malloc.h (+28/-0)
lib/librte_eal/common/include/rte_service.h (+4/-0)
lib/librte_eal/common/include/rte_string_fns.h (+25/-0)
lib/librte_eal/common/include/rte_tailq.h (+4/-0)
lib/librte_eal/common/include/rte_uuid.h (+8/-0)
lib/librte_eal/common/include/rte_version.h (+4/-0)
lib/librte_eal/common/include/rte_vfio.h (+11/-0)
lib/librte_eal/common/malloc_elem.c (+7/-0)
lib/librte_eal/common/malloc_mp.c (+21/-0)
lib/librte_eal/common/rte_malloc.c (+37/-0)
lib/librte_eal/common/rte_option.c (+8/-0)
lib/librte_eal/linuxapp/eal/eal.c (+186/-0)
lib/librte_eal/linuxapp/eal/eal_dev.c (+5/-0)
lib/librte_eal/linuxapp/eal/eal_hugepage_info.c (+4/-0)
lib/librte_eal/linuxapp/eal/eal_memalloc.c (+83/-0)
lib/librte_eal/linuxapp/eal/eal_memory.c (+52/-0)
lib/librte_eal/linuxapp/eal/eal_vfio.c (+102/-0)
lib/librte_eal/linuxapp/eal/eal_vfio.h (+23/-0)
lib/librte_eal/linuxapp/eal/eal_vfio_mp_sync.c (+19/-0)
lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h (+4/-0)
lib/librte_efd/rte_efd.c (+20/-0)
lib/librte_efd/rte_efd.h (+4/-0)
lib/librte_ethdev/rte_eth_ctrl.h (+4/-0)
lib/librte_ethdev/rte_ethdev.c (+22/-0)
lib/librte_ethdev/rte_ethdev.h (+31/-0)
lib/librte_ethdev/rte_ethdev_core.h (+8/-0)
lib/librte_ethdev/rte_ethdev_driver.h (+4/-0)
lib/librte_ethdev/rte_tm.h (+16/-0)
lib/librte_eventdev/rte_event_crypto_adapter.c (+26/-0)
lib/librte_eventdev/rte_event_crypto_adapter.h (+4/-0)
lib/librte_eventdev/rte_event_eth_rx_adapter.c (+8/-0)
lib/librte_eventdev/rte_event_eth_rx_adapter.h (+6/-0)
lib/librte_eventdev/rte_event_eth_tx_adapter.c (+54/-0)
lib/librte_eventdev/rte_event_eth_tx_adapter.h (+5/-0)
lib/librte_eventdev/rte_event_timer_adapter.h (+5/-0)
lib/librte_eventdev/rte_eventdev.h (+45/-0)
lib/librte_eventdev/rte_eventdev_pmd.h (+4/-0)
lib/librte_flow_classify/rte_flow_classify.h (+8/-0)
lib/librte_gro/gro_tcp4.c (+15/-0)
lib/librte_gro/gro_tcp4.h (+8/-0)
lib/librte_gro/gro_vxlan_tcp4.c (+15/-0)
lib/librte_gso/gso_common.h (+8/-0)
lib/librte_hash/rte_cuckoo_hash.c (+42/-0)
lib/librte_hash/rte_cuckoo_hash.h (+14/-0)
lib/librte_hash/rte_hash.h (+8/-0)
lib/librte_ip_frag/rte_ip_frag.h (+8/-0)
lib/librte_ip_frag/rte_ipv6_fragmentation.c (+27/-0)
lib/librte_kni/rte_kni.h (+4/-0)
lib/librte_latencystats/rte_latencystats.h (+4/-0)
lib/librte_lpm/rte_lpm.h (+4/-0)
lib/librte_mbuf/rte_mbuf.h (+30/-0)
lib/librte_mbuf/rte_mbuf_ptype.h (+4/-0)
lib/librte_mempool/rte_mempool.h (+8/-0)
lib/librte_net/rte_ether.h (+4/-0)
lib/librte_net/rte_ip.h (+15/-0)
lib/librte_power/power_acpi_cpufreq.c (+11/-0)
lib/librte_power/rte_power.c (+39/-0)
lib/librte_power/rte_power.h (+4/-0)
lib/librte_power/rte_power_empty_poll.c (+5/-0)
lib/librte_power/rte_power_empty_poll.h (+4/-0)
lib/librte_rawdev/rte_rawdev.h (+12/-0)
lib/librte_rawdev/rte_rawdev_pmd.h (+16/-0)
lib/librte_reorder/rte_reorder.h (+4/-0)
lib/librte_ring/rte_ring.c (+5/-0)
lib/librte_ring/rte_ring.h (+8/-0)
lib/librte_ring/rte_ring_generic.h (+11/-0)
lib/librte_sched/rte_sched.c (+8/-0)
lib/librte_sched/rte_sched.h (+4/-0)
lib/librte_security/rte_security.h (+8/-0)
lib/librte_table/rte_table_hash.h (+12/-0)
lib/librte_table/rte_table_hash_func.h (+4/-0)
lib/librte_telemetry/Makefile (+8/-0)
lib/librte_telemetry/rte_telemetry.c (+47/-0)
lib/librte_telemetry/rte_telemetry_internal.h (+4/-0)
lib/librte_telemetry/rte_telemetry_parser.c (+30/-0)
lib/librte_timer/rte_timer.c (+34/-0)
lib/librte_vhost/fd_man.c (+12/-0)
lib/librte_vhost/fd_man.h (+4/-0)
lib/librte_vhost/rte_vhost.h (+8/-0)
lib/librte_vhost/socket.c (+56/-0)
lib/librte_vhost/vdpa.c (+14/-0)
lib/librte_vhost/vhost.c (+32/-0)
lib/librte_vhost/vhost.h (+59/-0)
lib/librte_vhost/vhost_crypto.c (+223/-0)
lib/librte_vhost/vhost_user.c (+110/-0)
lib/librte_vhost/virtio_net.c (+61/-0)
lib/meson.build (+4/-0)
meson.build (+15/-0)
mk/exec-env/linuxapp/rte.vars.mk (+12/-0)
mk/rte.app.mk (+3/-0)
mk/rte.cpuflags.mk (+5/-0)
mk/rte.lib.mk (+5/-0)
mk/rte.sdkinstall.mk (+6/-0)
mk/toolchain/gcc/rte.toolchain-compat.mk (+22/-0)
mk/toolchain/gcc/rte.vars.mk (+6/-0)
pkg/dpdk.spec (+4/-0)
test/test/autotest_data.py (+3/-0)
test/test/commands.c (+20/-0)
test/test/meson.build (+16/-0)
test/test/test_barrier.c (+16/-0)
test/test/test_compressdev.c (+4/-0)
test/test/test_cryptodev.c (+8/-0)
test/test/test_cryptodev_blockcipher.c (+9/-0)
test/test/test_cryptodev_blockcipher.h (+7/-0)
test/test/test_distributor.c (+12/-0)
test/test/test_eal_flags.c (+88/-0)
test/test/test_event_eth_rx_adapter.c (+5/-0)
test/test/test_hash_perf.c (+8/-0)
test/test/test_hash_readwrite.c (+25/-0)
test/test/test_link_bonding.c (+45/-0)
test/test/test_metrics.c (+4/-0)
test/test/test_pmd_perf.c (+15/-0)
test/test/test_spinlock.c (+41/-0)
test/test/test_string_fns.c (+51/-0)
Conflict in .gitignore
Conflict in MAINTAINERS
Conflict in app/pdump/main.c
Conflict in app/test-bbdev/test_bbdev.c
Conflict in app/test-bbdev/test_bbdev_perf.c
Conflict in app/test-crypto-perf/main.c
Conflict in app/test-eventdev/test_perf_common.c
Conflict in app/test-pmd/cmdline.c
Conflict in app/test-pmd/cmdline_flow.c
Conflict in app/test-pmd/cmdline_tm.c
Conflict in app/test-pmd/config.c
Conflict in app/test-pmd/csumonly.c
Conflict in app/test-pmd/testpmd.c
Conflict in app/test-pmd/testpmd.h
Conflict in buildtools/symlink-drivers-solibs.sh
Conflict in config/arm/meson.build
Conflict in config/meson.build
Conflict in config/x86/meson.build
Conflict in debian/README.source
Conflict in debian/changelog
Conflict in debian/control
Conflict in debian/patches/0004-build-bump-minimum-Meson-version-to-0.47.1.patch
Conflict in debian/patches/series
Conflict in debian/rules
Conflict in devtools/check-git-log.sh
Conflict in devtools/check-symbol-change.sh
Conflict in devtools/checkpatches.sh
Conflict in devtools/test-build.sh
Conflict in devtools/test-meson-builds.sh
Conflict in doc/guides/compressdevs/overview.rst
Conflict in doc/guides/conf.py
Conflict in doc/guides/contributing/coding_style.rst
Conflict in doc/guides/contributing/documentation.rst
Conflict in doc/guides/contributing/patches.rst
Conflict in doc/guides/contributing/versioning.rst
Conflict in doc/guides/cryptodevs/aesni_mb.rst
Conflict in doc/guides/cryptodevs/features/aesni_gcm.ini
Conflict in doc/guides/cryptodevs/features/aesni_mb.ini
Conflict in doc/guides/cryptodevs/features/armv8.ini
Conflict in doc/guides/cryptodevs/features/caam_jr.ini
Conflict in doc/guides/cryptodevs/features/ccp.ini
Conflict in doc/guides/cryptodevs/features/default.ini
Conflict in doc/guides/cryptodevs/features/dpaa2_sec.ini
Conflict in doc/guides/cryptodevs/features/dpaa_sec.ini
Conflict in doc/guides/cryptodevs/features/kasumi.ini
Conflict in doc/guides/cryptodevs/features/mvsam.ini
Conflict in doc/guides/cryptodevs/features/null.ini
Conflict in doc/guides/cryptodevs/features/octeontx.ini
Conflict in doc/guides/cryptodevs/features/qat.ini
Conflict in doc/guides/cryptodevs/features/snow3g.ini
Conflict in doc/guides/cryptodevs/features/virtio.ini
Conflict in doc/guides/cryptodevs/features/zuc.ini
Conflict in doc/guides/cryptodevs/openssl.rst
Conflict in doc/guides/cryptodevs/overview.rst
Conflict in doc/guides/cryptodevs/qat.rst
Conflict in doc/guides/cryptodevs/scheduler.rst
Conflict in doc/guides/eventdevs/opdl.rst
Conflict in doc/guides/eventdevs/sw.rst
Conflict in doc/guides/howto/lm_bond_virtio_sriov.rst
Conflict in doc/guides/howto/lm_virtio_vhost_user.rst
Conflict in doc/guides/howto/rte_flow.rst
Conflict in doc/guides/howto/virtio_user_as_exceptional_path.rst
Conflict in doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
Conflict in doc/guides/linux_gsg/sys_reqs.rst
Conflict in doc/guides/nics/atlantic.rst
Conflict in doc/guides/nics/cxgbe.rst
Conflict in doc/guides/nics/dpaa.rst
Conflict in doc/guides/nics/dpaa2.rst
Conflict in doc/guides/nics/enetc.rst
Conflict in doc/guides/nics/enic.rst
Conflict in doc/guides/nics/features.rst
Conflict in doc/guides/nics/features/qede.ini
Conflict in doc/guides/nics/i40e.rst
Conflict in doc/guides/nics/ifc.rst
Conflict in doc/guides/nics/ixgbe.rst
Conflict in doc/guides/nics/kni.rst
Conflict in doc/guides/nics/mlx5.rst
Conflict in doc/guides/nics/mvpp2.rst
Conflict in doc/guides/nics/netvsc.rst
Conflict in doc/guides/nics/sfc_efx.rst
Conflict in doc/guides/nics/szedata2.rst
Conflict in doc/guides/nics/tap.rst
Conflict in doc/guides/platform/dpaa.rst
Conflict in doc/guides/platform/dpaa2.rst
Conflict in doc/guides/prog_guide/bbdev.rst
Conflict in doc/guides/prog_guide/compressdev.rst
Conflict in doc/guides/prog_guide/cryptodev_lib.rst
Conflict in doc/guides/prog_guide/dev_kit_build_system.rst
Conflict in doc/guides/prog_guide/efd_lib.rst
Conflict in doc/guides/prog_guide/env_abstraction_layer.rst
Conflict in doc/guides/prog_guide/event_ethernet_rx_adapter.rst
Conflict in doc/guides/prog_guide/eventdev.rst
Conflict in doc/guides/prog_guide/generic_receive_offload_lib.rst
Conflict in doc/guides/prog_guide/kernel_nic_interface.rst
Conflict in doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
Conflict in doc/guides/prog_guide/lpm_lib.rst
Conflict in doc/guides/prog_guide/metrics_lib.rst
Conflict in doc/guides/prog_guide/multi_proc_support.rst
Conflict in doc/guides/prog_guide/poll_mode_drv.rst
Conflict in doc/guides/prog_guide/power_man.rst
Conflict in doc/guides/prog_guide/profile_app.rst
Conflict in doc/guides/prog_guide/rte_flow.rst
Conflict in doc/guides/prog_guide/rte_security.rst
Conflict in doc/guides/prog_guide/traffic_management.rst
Conflict in doc/guides/prog_guide/vhost_lib.rst
Conflict in doc/guides/rawdevs/ifpga_rawdev.rst
Conflict in doc/guides/rel_notes/known_issues.rst
Conflict in doc/guides/rel_notes/release_17_11.rst
Conflict in doc/guides/rel_notes/release_18_11.rst
Conflict in doc/guides/sample_app_ug/bbdev_app.rst
Conflict in doc/guides/sample_app_ug/eventdev_pipeline.rst
Conflict in doc/guides/sample_app_ug/flow_filtering.rst
Conflict in doc/guides/sample_app_ug/intro.rst
Conflict in doc/guides/sample_app_ug/ip_pipeline.rst
Conflict in doc/guides/sample_app_ug/ipsec_secgw.rst
Conflict in doc/guides/sample_app_ug/performance_thread.rst
Conflict in doc/guides/sample_app_ug/qos_metering.rst
Conflict in doc/guides/sample_app_ug/test_pipeline.rst
Conflict in doc/guides/sample_app_ug/vhost.rst
Conflict in doc/guides/sample_app_ug/vhost_scsi.rst
Conflict in doc/guides/sample_app_ug/vm_power_management.rst
Conflict in doc/guides/testpmd_app_ug/run_app.rst
Conflict in doc/guides/testpmd_app_ug/testpmd_funcs.rst
Conflict in doc/guides/tools/cryptoperf.rst
Conflict in doc/guides/tools/proc_info.rst
Conflict in doc/guides/tools/testbbdev.rst
Conflict in drivers/baseband/turbo_sw/Makefile
Conflict in drivers/bus/dpaa/base/fman/fman_hw.c
Conflict in drivers/bus/dpaa/dpaa_bus.c
Conflict in drivers/bus/fslmc/fslmc_bus.c
Conflict in drivers/bus/fslmc/fslmc_vfio.c
Conflict in drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
Conflict in drivers/bus/fslmc/qbman/include/compat.h
Conflict in drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
Conflict in drivers/bus/fslmc/qbman/qbman_debug.c
Conflict in drivers/bus/fslmc/qbman/qbman_portal.c
Conflict in drivers/bus/fslmc/qbman/qbman_sys.h
Conflict in drivers/bus/ifpga/ifpga_bus.c
Conflict in drivers/bus/ifpga/rte_bus_ifpga.h
Conflict in drivers/bus/pci/linux/pci_vfio.c
Conflict in drivers/bus/vdev/vdev.c
Conflict in drivers/bus/vmbus/linux/vmbus_uio.c
Conflict in drivers/bus/vmbus/private.h
Conflict in drivers/bus/vmbus/vmbus_channel.c
Conflict in drivers/bus/vmbus/vmbus_common_uio.c
Conflict in drivers/common/cpt/cpt_ucode.h
Conflict in drivers/common/qat/qat_qp.c
Conflict in drivers/common/qat/qat_qp.h
Conflict in drivers/compress/isal/isal_compress_pmd.c
Conflict in drivers/compress/isal/isal_compress_pmd_ops.c
Conflict in drivers/compress/qat/qat_comp.c
Conflict in drivers/compress/qat/qat_comp.h
Conflict in drivers/compress/qat/qat_comp_pmd.c
Conflict in drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c
Conflict in drivers/crypto/caam_jr/caam_jr.c
Conflict in drivers/crypto/caam_jr/caam_jr_uio.c
Conflict in drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
Conflict in drivers/crypto/dpaa2_sec/hw/desc/pdcp.h
Conflict in drivers/crypto/dpaa_sec/dpaa_sec.c
Conflict in drivers/crypto/kasumi/meson.build
Conflict in drivers/crypto/meson.build
Conflict in drivers/crypto/null/null_crypto_pmd_ops.c
Conflict in drivers/crypto/openssl/rte_openssl_pmd.c
Conflict in drivers/crypto/openssl/rte_openssl_pmd_ops.c
Conflict in drivers/crypto/qat/qat_sym.c
Conflict in drivers/crypto/qat/qat_sym_session.c
Conflict in drivers/crypto/snow3g/rte_snow3g_pmd_ops.c
Conflict in drivers/crypto/virtio/virtio_logs.h
Conflict in drivers/crypto/virtio/virtio_rxtx.c
Conflict in drivers/crypto/zuc/meson.build
Conflict in drivers/crypto/zuc/rte_zuc_pmd_ops.c
Conflict in drivers/event/dpaa2/dpaa2_eventdev.h
Conflict in drivers/event/dpaa2/dpaa2_eventdev_logs.h
Conflict in drivers/event/dsw/dsw_evdev.c
Conflict in drivers/event/meson.build
Conflict in drivers/event/opdl/opdl_evdev.c
Conflict in drivers/event/opdl/opdl_evdev_xstats.c
Conflict in drivers/event/opdl/opdl_ring.h
Conflict in drivers/event/sw/sw_evdev_selftest.c
Conflict in drivers/mempool/dpaa2/dpaa2_hw_mempool.c
Conflict in drivers/mempool/dpaa2/dpaa2_hw_mempool_logs.h
Conflict in drivers/net/af_packet/rte_eth_af_packet.c
Conflict in drivers/net/atlantic/atl_ethdev.c
Conflict in drivers/net/atlantic/atl_rxtx.c
Conflict in drivers/net/atlantic/atl_types.h
Conflict in drivers/net/atlantic/hw_atl/hw_atl_b0.c
Conflict in drivers/net/atlantic/hw_atl/hw_atl_b0.h
Conflict in drivers/net/atlantic/hw_atl/hw_atl_utils.c
Conflict in drivers/net/atlantic/hw_atl/hw_atl_utils.h
Conflict in drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
Conflict in drivers/net/avf/avf_ethdev.c
Conflict in drivers/net/avf/base/avf_adminq_cmd.h
Conflict in drivers/net/axgbe/axgbe_common.h
Conflict in drivers/net/bnx2x/bnx2x.c
Conflict in drivers/net/bnx2x/bnx2x.h
Conflict in drivers/net/bnx2x/bnx2x_ethdev.c
Conflict in drivers/net/bnx2x/bnx2x_ethdev.h
Conflict in drivers/net/bnx2x/bnx2x_rxtx.c
Conflict in drivers/net/bnx2x/bnx2x_rxtx.h
Conflict in drivers/net/bnx2x/ecore_hsi.h
Conflict in drivers/net/bnx2x/ecore_reg.h
Conflict in drivers/net/bnx2x/ecore_sp.c
Conflict in drivers/net/bnx2x/ecore_sp.h
Conflict in drivers/net/bnx2x/elink.h
Conflict in drivers/net/bnxt/bnxt.h
Conflict in drivers/net/bnxt/bnxt_ethdev.c
Conflict in drivers/net/bnxt/bnxt_rxq.c
Conflict in drivers/net/bnxt/bnxt_rxr.c
Conflict in drivers/net/bonding/rte_eth_bond_8023ad.c
Conflict in drivers/net/bonding/rte_eth_bond_8023ad_private.h
Conflict in drivers/net/bonding/rte_eth_bond_alb.c
Conflict in drivers/net/bonding/rte_eth_bond_api.c
Conflict in drivers/net/bonding/rte_eth_bond_pmd.c
Conflict in drivers/net/bonding/rte_eth_bond_private.h
Conflict in drivers/net/cxgbe/base/t4_hw.c
Conflict in drivers/net/cxgbe/base/t4_pci_id_tbl.h
Conflict in drivers/net/cxgbe/cxgbe.h
Conflict in drivers/net/cxgbe/cxgbe_ethdev.c
Conflict in drivers/net/cxgbe/cxgbe_flow.c
Conflict in drivers/net/cxgbe/cxgbe_main.c
Conflict in drivers/net/cxgbe/cxgbevf_main.c
Conflict in drivers/net/cxgbe/sge.c
Conflict in drivers/net/dpaa/dpaa_ethdev.c
Conflict in drivers/net/dpaa2/dpaa2_ethdev.c
Conflict in drivers/net/dpaa2/dpaa2_pmd_logs.h
Conflict in drivers/net/e1000/base/e1000_82575.h
Conflict in drivers/net/e1000/base/e1000_ich8lan.c
Conflict in drivers/net/e1000/em_rxtx.c
Conflict in drivers/net/e1000/igb_ethdev.c
Conflict in drivers/net/ena/ena_ethdev.c
Conflict in drivers/net/enetc/enetc_ethdev.c
Conflict in drivers/net/enetc/enetc_rxtx.c
Conflict in drivers/net/enic/enic.h
Conflict in drivers/net/enic/enic_clsf.c
Conflict in drivers/net/enic/enic_flow.c
Conflict in drivers/net/enic/enic_main.c
Conflict in drivers/net/enic/enic_res.c
Conflict in drivers/net/enic/enic_rxtx_common.h
Conflict in drivers/net/fm10k/fm10k_ethdev.c
Conflict in drivers/net/fm10k/fm10k_rxtx.c
Conflict in drivers/net/fm10k/fm10k_rxtx_vec.c
Conflict in drivers/net/i40e/base/i40e_type.h
Conflict in drivers/net/i40e/i40e_ethdev.c
Conflict in drivers/net/i40e/i40e_ethdev.h
Conflict in drivers/net/i40e/i40e_ethdev_vf.c
Conflict in drivers/net/i40e/i40e_flow.c
Conflict in drivers/net/i40e/i40e_pf.c
Conflict in drivers/net/i40e/i40e_rxtx.c
Conflict in drivers/net/i40e/rte_pmd_i40e.c
Conflict in drivers/net/i40e/rte_pmd_i40e.h
Conflict in drivers/net/ifc/base/ifcvf.h
Conflict in drivers/net/ifc/ifcvf_vdpa.c
Conflict in drivers/net/ixgbe/base/ixgbe_82599.c
Conflict in drivers/net/ixgbe/base/ixgbe_phy.c
Conflict in drivers/net/ixgbe/base/ixgbe_phy.h
Conflict in drivers/net/ixgbe/base/ixgbe_type.h
Conflict in drivers/net/ixgbe/base/ixgbe_x550.c
Conflict in drivers/net/ixgbe/ixgbe_ethdev.c
Conflict in drivers/net/ixgbe/ixgbe_ethdev.h
Conflict in drivers/net/ixgbe/ixgbe_pf.c
Conflict in drivers/net/ixgbe/ixgbe_rxtx.c
Conflict in drivers/net/kni/rte_eth_kni.c
Conflict in drivers/net/mlx4/mlx4.c
Conflict in drivers/net/mlx4/mlx4.h
Conflict in drivers/net/mlx4/mlx4_ethdev.c
Conflict in drivers/net/mlx4/mlx4_flow.c
Conflict in drivers/net/mlx4/mlx4_flow.h
Conflict in drivers/net/mlx4/mlx4_intr.c
Conflict in drivers/net/mlx4/mlx4_mr.c
Conflict in drivers/net/mlx4/mlx4_rxq.c
Conflict in drivers/net/mlx4/mlx4_rxtx.h
Conflict in drivers/net/mlx4/mlx4_txq.c
Conflict in drivers/net/mlx5/Makefile
Conflict in drivers/net/mlx5/meson.build
Conflict in drivers/net/mlx5/mlx5.c
Conflict in drivers/net/mlx5/mlx5.h
Conflict in drivers/net/mlx5/mlx5_defs.h
Conflict in drivers/net/mlx5/mlx5_ethdev.c
Conflict in drivers/net/mlx5/mlx5_flow.c
Conflict in drivers/net/mlx5/mlx5_flow.h
Conflict in drivers/net/mlx5/mlx5_flow_dv.c
Conflict in drivers/net/mlx5/mlx5_flow_tcf.c
Conflict in drivers/net/mlx5/mlx5_flow_verbs.c
Conflict in drivers/net/mlx5/mlx5_mac.c
Conflict in drivers/net/mlx5/mlx5_mr.c
Conflict in drivers/net/mlx5/mlx5_nl.c
Conflict in drivers/net/mlx5/mlx5_rss.c
Conflict in drivers/net/mlx5/mlx5_rxmode.c
Conflict in drivers/net/mlx5/mlx5_rxq.c
Conflict in drivers/net/mlx5/mlx5_rxtx.c
Conflict in drivers/net/mlx5/mlx5_rxtx.h
Conflict in drivers/net/mlx5/mlx5_rxtx_vec.c
Conflict in drivers/net/mlx5/mlx5_rxtx_vec.h
Conflict in drivers/net/mlx5/mlx5_rxtx_vec_neon.h
Conflict in drivers/net/mlx5/mlx5_rxtx_vec_sse.h
Conflict in drivers/net/mlx5/mlx5_socket.c
Conflict in drivers/net/mlx5/mlx5_stats.c
Conflict in drivers/net/mlx5/mlx5_trigger.c
Conflict in drivers/net/mlx5/mlx5_txq.c
Conflict in drivers/net/mlx5/mlx5_vlan.c
Conflict in drivers/net/mvpp2/mrvl_mtr.c
Conflict in drivers/net/netvsc/hn_ethdev.c
Conflict in drivers/net/netvsc/hn_nvs.c
Conflict in drivers/net/netvsc/hn_rxtx.c
Conflict in drivers/net/netvsc/hn_var.h
Conflict in drivers/net/netvsc/hn_vf.c
Conflict in drivers/net/nfp/nfp_net.c
Conflict in drivers/net/nfp/nfp_net_ctrl.h
Conflict in drivers/net/nfp/nfp_net_pmd.h
Conflict in drivers/net/nfp/nfpcore/nfp-common/nfp_cppat.h
Conflict in drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c
Conflict in drivers/net/nfp/nfpcore/nfp_cppcore.c
Conflict in drivers/net/octeontx/octeontx_ethdev.h
Conflict in drivers/net/pcap/rte_eth_pcap.c
Conflict in drivers/net/qede/base/common_hsi.h
Conflict in drivers/net/qede/base/ecore_hsi_common.h
Conflict in drivers/net/qede/base/ecore_hsi_eth.h
Conflict in drivers/net/qede/base/ecore_hw_defs.h
Conflict in drivers/net/qede/qede_ethdev.c
Conflict in drivers/net/qede/qede_rxtx.c
Conflict in drivers/net/qede/qede_rxtx.h
Conflict in drivers/net/ring/rte_eth_ring.c
Conflict in drivers/net/sfc/base/efx_tx.c
Conflict in drivers/net/sfc/efsys.h
Conflict in drivers/net/sfc/sfc.c
Conflict in drivers/net/sfc/sfc.h
Conflict in drivers/net/sfc/sfc_debug.h
Conflict in drivers/net/sfc/sfc_ef10_tx.c
Conflict in drivers/net/sfc/sfc_ethdev.c
Conflict in drivers/net/sfc/sfc_log.h
Conflict in drivers/net/sfc/sfc_mcdi.c
Conflict in drivers/net/sfc/sfc_port.c
Conflict in drivers/net/sfc/sfc_rx.c
Conflict in drivers/net/sfc/sfc_rx.h
Conflict in drivers/net/sfc/sfc_tso.c
Conflict in drivers/net/sfc/sfc_tso.h
Conflict in drivers/net/sfc/sfc_tx.c
Conflict in drivers/net/softnic/rte_eth_softnic_flow.c
Conflict in drivers/net/tap/rte_eth_tap.c
Conflict in drivers/net/tap/tap_bpf_program.c
Conflict in drivers/net/tap/tap_tcmsgs.c
Conflict in drivers/net/vdev_netvsc/vdev_netvsc.c
Conflict in drivers/net/vhost/rte_eth_vhost.c
Conflict in drivers/net/virtio/virtio_ethdev.c
Conflict in drivers/net/virtio/virtio_ethdev.h
Conflict in drivers/net/virtio/virtio_rxtx.c
Conflict in drivers/net/virtio/virtio_user/vhost.h
Conflict in drivers/net/virtio/virtio_user/vhost_kernel_tap.c
Conflict in drivers/net/virtio/virtio_user/vhost_user.c
Conflict in drivers/net/virtio/virtio_user/virtio_user_dev.c
Conflict in drivers/net/virtio/virtio_user/virtio_user_dev.h
Conflict in drivers/net/virtio/virtio_user_ethdev.c
Conflict in drivers/net/virtio/virtqueue.h
Conflict in drivers/net/vmxnet3/vmxnet3_ethdev.c
Conflict in drivers/net/vmxnet3/vmxnet3_rxtx.c
Conflict in drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c
Conflict in drivers/raw/dpaa2_qdma/dpaa2_qdma.c
Conflict in drivers/raw/dpaa2_qdma/rte_pmd_dpaa2_qdma.h
Conflict in drivers/raw/ifpga_rawdev/base/opae_hw_api.c
Conflict in drivers/raw/ifpga_rawdev/base/opae_hw_api.h
Conflict in drivers/raw/ifpga_rawdev/ifpga_rawdev.c
Conflict in drivers/raw/ifpga_rawdev/ifpga_rawdev.h
Conflict in drivers/raw/skeleton_rawdev/skeleton_rawdev.c
Conflict in examples/bond/main.c
Conflict in examples/ethtool/lib/rte_ethtool.h
Conflict in examples/fips_validation/main.c
Conflict in examples/flow_filtering/flow_blocks.c
Conflict in examples/ip_pipeline/meson.build
Conflict in examples/ipsec-secgw/Makefile
Conflict in examples/ipsec-secgw/esp.c
Conflict in examples/ipsec-secgw/ipsec-secgw.c
Conflict in examples/ipsec-secgw/ipsec.c
Conflict in examples/ipsec-secgw/ipsec.h
Conflict in examples/ipsec-secgw/sa.c
Conflict in examples/ipsec-secgw/sp4.c
Conflict in examples/ipsec-secgw/sp6.c
Conflict in examples/kni/main.c
Conflict in examples/l2fwd-cat/cat.c
Conflict in examples/multi_process/client_server_mp/mp_server/init.c
Conflict in examples/performance-thread/common/lthread_api.h
Conflict in examples/tep_termination/main.c
Conflict in examples/vhost/main.c
Conflict in examples/vhost_crypto/main.c
Conflict in examples/vhost_crypto/meson.build
Conflict in examples/vhost_scsi/vhost_scsi.c
Conflict in examples/vm_power_manager/channel_monitor.c
Conflict in examples/vm_power_manager/main.c
Conflict in examples/vm_power_manager/oob_monitor_x86.c
Conflict in examples/vm_power_manager/power_manager.c
Conflict in kernel/linux/kni/compat.h
Conflict in kernel/linux/kni/ethtool/igb/igb_main.c
Conflict in kernel/linux/kni/ethtool/igb/kcompat.h
Conflict in kernel/linux/kni/ethtool/ixgbe/kcompat.h
Conflict in kernel/linux/kni/kni_misc.c
Conflict in lib/librte_acl/acl_vect.h
Conflict in lib/librte_acl/meson.build
Conflict in lib/librte_bbdev/rte_bbdev.h
Conflict in lib/librte_bitratestats/rte_bitrate.c
Conflict in lib/librte_bpf/rte_bpf.h
Conflict in lib/librte_bpf/rte_bpf_ethdev.h
Conflict in lib/librte_cfgfile/rte_cfgfile.c
Conflict in lib/librte_compressdev/rte_comp.h
Conflict in lib/librte_cryptodev/rte_crypto_asym.h
Conflict in lib/librte_cryptodev/rte_cryptodev.c
Conflict in lib/librte_cryptodev/rte_cryptodev.h
Conflict in lib/librte_distributor/rte_distributor_private.h
Conflict in lib/librte_eal/bsdapp/eal/eal.c
Conflict in lib/librte_eal/bsdapp/eal/eal_hugepage_info.c
Conflict in lib/librte_eal/common/eal_common_memory.c
Conflict in lib/librte_eal/common/eal_common_memzone.c
Conflict in lib/librte_eal/common/eal_common_options.c
Conflict in lib/librte_eal/common/eal_common_proc.c
Conflict in lib/librte_eal/common/eal_common_thread.c
Conflict in lib/librte_eal/common/eal_filesystem.h
Conflict in lib/librte_eal/common/eal_internal_cfg.h
Conflict in lib/librte_eal/common/eal_options.h
Conflict in lib/librte_eal/common/eal_private.h
Conflict in lib/librte_eal/common/hotplug_mp.c
Conflict in lib/librte_eal/common/include/arch/ppc_64/rte_atomic.h
Conflict in lib/librte_eal/common/include/generic/rte_atomic.h
Conflict in lib/librte_eal/common/include/generic/rte_cycles.h
Conflict in lib/librte_eal/common/include/generic/rte_rwlock.h
Conflict in lib/librte_eal/common/include/generic/rte_spinlock.h
Conflict in lib/librte_eal/common/include/generic/rte_vect.h
Conflict in lib/librte_eal/common/include/rte_class.h
Conflict in lib/librte_eal/common/include/rte_common.h
Conflict in lib/librte_eal/common/include/rte_eal.h
Conflict in lib/librte_eal/common/include/rte_lcore.h
Conflict in lib/librte_eal/common/include/rte_log.h
Conflict in lib/librte_eal/common/include/rte_malloc.h
Conflict in lib/librte_eal/common/include/rte_service.h
Conflict in lib/librte_eal/common/include/rte_string_fns.h
Conflict in lib/librte_eal/common/include/rte_tailq.h
Conflict in lib/librte_eal/common/include/rte_uuid.h
Conflict in lib/librte_eal/common/include/rte_version.h
Conflict in lib/librte_eal/common/include/rte_vfio.h
Conflict in lib/librte_eal/common/malloc_elem.c
Conflict in lib/librte_eal/common/malloc_mp.c
Conflict in lib/librte_eal/common/rte_malloc.c
Conflict in lib/librte_eal/common/rte_option.c
Conflict in lib/librte_eal/linuxapp/eal/eal.c
Conflict in lib/librte_eal/linuxapp/eal/eal_dev.c
Conflict in lib/librte_eal/linuxapp/eal/eal_hugepage_info.c
Conflict in lib/librte_eal/linuxapp/eal/eal_memalloc.c
Conflict in lib/librte_eal/linuxapp/eal/eal_memory.c
Conflict in lib/librte_eal/linuxapp/eal/eal_vfio.c
Conflict in lib/librte_eal/linuxapp/eal/eal_vfio.h
Conflict in lib/librte_eal/linuxapp/eal/eal_vfio_mp_sync.c
Conflict in lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
Conflict in lib/librte_efd/rte_efd.c
Conflict in lib/librte_efd/rte_efd.h
Conflict in lib/librte_ethdev/rte_eth_ctrl.h
Conflict in lib/librte_ethdev/rte_ethdev.c
Conflict in lib/librte_ethdev/rte_ethdev.h
Conflict in lib/librte_ethdev/rte_ethdev_core.h
Conflict in lib/librte_ethdev/rte_ethdev_driver.h
Conflict in lib/librte_ethdev/rte_tm.h
Conflict in lib/librte_eventdev/rte_event_crypto_adapter.c
Conflict in lib/librte_eventdev/rte_event_crypto_adapter.h
Conflict in lib/librte_eventdev/rte_event_eth_rx_adapter.c
Conflict in lib/librte_eventdev/rte_event_eth_rx_adapter.h
Conflict in lib/librte_eventdev/rte_event_eth_tx_adapter.c
Conflict in lib/librte_eventdev/rte_event_eth_tx_adapter.h
Conflict in lib/librte_eventdev/rte_event_timer_adapter.h
Conflict in lib/librte_eventdev/rte_eventdev.h
Conflict in lib/librte_eventdev/rte_eventdev_pmd.h
Conflict in lib/librte_flow_classify/rte_flow_classify.h
Conflict in lib/librte_gro/gro_tcp4.c
Conflict in lib/librte_gro/gro_tcp4.h
Conflict in lib/librte_gro/gro_vxlan_tcp4.c
Conflict in lib/librte_gso/gso_common.h
Conflict in lib/librte_hash/rte_cuckoo_hash.c
Conflict in lib/librte_hash/rte_cuckoo_hash.h
Conflict in lib/librte_hash/rte_hash.h
Conflict in lib/librte_ip_frag/rte_ip_frag.h
Conflict in lib/librte_ip_frag/rte_ipv6_fragmentation.c
Conflict in lib/librte_kni/rte_kni.h
Conflict in lib/librte_latencystats/rte_latencystats.h
Conflict in lib/librte_lpm/rte_lpm.h
Conflict in lib/librte_mbuf/rte_mbuf.h
Conflict in lib/librte_mbuf/rte_mbuf_ptype.h
Conflict in lib/librte_mempool/rte_mempool.h
Conflict in lib/librte_net/rte_ether.h
Conflict in lib/librte_net/rte_ip.h
Conflict in lib/librte_power/power_acpi_cpufreq.c
Conflict in lib/librte_power/rte_power.c
Conflict in lib/librte_power/rte_power.h
Conflict in lib/librte_power/rte_power_empty_poll.c
Conflict in lib/librte_power/rte_power_empty_poll.h
Conflict in lib/librte_rawdev/rte_rawdev.h
Conflict in lib/librte_rawdev/rte_rawdev_pmd.h
Conflict in lib/librte_reorder/rte_reorder.h
Conflict in lib/librte_ring/rte_ring.c
Conflict in lib/librte_ring/rte_ring.h
Conflict in lib/librte_ring/rte_ring_generic.h
Conflict in lib/librte_sched/rte_sched.c
Conflict in lib/librte_sched/rte_sched.h
Conflict in lib/librte_security/rte_security.h
Conflict in lib/librte_table/rte_table_hash.h
Conflict in lib/librte_table/rte_table_hash_func.h
Conflict in lib/librte_telemetry/Makefile
Conflict in lib/librte_telemetry/rte_telemetry.c
Conflict in lib/librte_telemetry/rte_telemetry_internal.h
Conflict in lib/librte_telemetry/rte_telemetry_parser.c
Conflict in lib/librte_timer/rte_timer.c
Conflict in lib/librte_vhost/fd_man.c
Conflict in lib/librte_vhost/fd_man.h
Conflict in lib/librte_vhost/rte_vhost.h
Conflict in lib/librte_vhost/socket.c
Conflict in lib/librte_vhost/vdpa.c
Conflict in lib/librte_vhost/vhost.c
Conflict in lib/librte_vhost/vhost.h
Conflict in lib/librte_vhost/vhost_crypto.c
Conflict in lib/librte_vhost/vhost_user.c
Conflict in lib/librte_vhost/virtio_net.c
Conflict in lib/meson.build
Conflict in meson.build
Conflict in mk/exec-env/linuxapp/rte.vars.mk
Conflict in mk/rte.app.mk
Conflict in mk/rte.cpuflags.mk
Conflict in mk/rte.lib.mk
Conflict in mk/rte.sdkinstall.mk
Conflict in mk/toolchain/gcc/rte.toolchain-compat.mk
Conflict in mk/toolchain/gcc/rte.vars.mk
Conflict in pkg/dpdk.spec
Conflict in test/test/autotest_data.py
Conflict in test/test/commands.c
Conflict in test/test/meson.build
Conflict in test/test/test_barrier.c
Conflict in test/test/test_compressdev.c
Conflict in test/test/test_cryptodev.c
Conflict in test/test/test_cryptodev_blockcipher.c
Conflict in test/test/test_cryptodev_blockcipher.h
Conflict in test/test/test_distributor.c
Conflict in test/test/test_eal_flags.c
Conflict in test/test/test_event_eth_rx_adapter.c
Conflict in test/test/test_hash_perf.c
Conflict in test/test/test_hash_readwrite.c
Conflict in test/test/test_link_bonding.c
Conflict in test/test/test_metrics.c
Conflict in test/test/test_pmd_perf.c
Conflict in test/test/test_spinlock.c
Conflict in test/test/test_string_fns.c
Reviewer Review Type Date Requested Status
Canonical Server Pending
Canonical Server packageset reviewers Pending
git-ubuntu developers Pending
Review via email: mp+370134@code.launchpad.net

This proposal has been superseded by a proposal from 2019-07-15.

To post a comment you must log in.
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Unmerged commits

bbb324c... by Christian Ehrhardt 

changelog: mention fix for mlx rdma-core dependencies (LP: #1820957)

Change-Id: I65637239c64b939eede5bdd532106c13e5400834
Signed-off-by: Christian Ehrhardt <email address hidden>

34cfcfe... by Christian Ehrhardt 

update-maintainer

Change-Id: I24ad0550284f7b7a4ce2e6a7b4f3066c4951e172
Signed-off-by: Christian Ehrhardt <email address hidden>

2e460d6... by Christian Ehrhardt 

changelog: Make DPDK LTS release available in Disco (LP: #1784816)

Change-Id: I4645a1ad14a99d0f9564a1ba8dde4d265010f615
Signed-off-by: Christian Ehrhardt <email address hidden>

9bcf5b3... by Luca Boccassi

Merge branch 'gbp' into 'experimental'

Add gbp.conf and CI config

See merge request debian/dpdk!1

e77068c... by Luca Boccassi

Add gbp.conf file

Gbp-Dch: ignore

3761e64... by Luca Boccassi

Add .gitlab.yml file to run CI on Salsa

Gbp-Dch: ignore

8866da0... by Luca Boccassi

Merge branch 'experimental-18.11.2-1' into 'experimental'

Experimental 18.11.2 1

See merge request debian/dpdk!2

d116693... by Christian Ehrhardt 

d/README.source: add info about salsa git usage

Change-Id: I1707e7e96b3179a72873b03e150b1be513207f7f
Signed-off-by: Christian Ehrhardt <email address hidden>

c1f2dfb... by Christian Ehrhardt 

d/control: set VCS to be Salsa based

Change-Id: I67d511ca4cc888fe9a937b1b6aabe0fe4bd285b2
Signed-off-by: Christian Ehrhardt <email address hidden>

5e64e15... by Christian Ehrhardt 

changelog: mention debian/rules: clean doc files

Change-Id: Ie5916373388c10e61388fdb17ece7b7e60a9b3f2
Signed-off-by: Christian Ehrhardt <email address hidden>

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
2new file mode 100755
3index 0000000..4eb7c3c
4--- /dev/null
5+++ b/.ci/linux-build.sh
6@@ -0,0 +1,24 @@
7+#!/bin/sh -xe
8+
9+on_error() {
10+ if [ $? = 0 ]; then
11+ exit
12+ fi
13+ FILES_TO_PRINT="build/meson-logs/testlog.txt build/.ninja_log build/meson-logs/meson-log.txt"
14+
15+ for pr_file in $FILES_TO_PRINT; do
16+ if [ -e "$pr_file" ]; then
17+ cat "$pr_file"
18+ fi
19+ done
20+}
21+trap on_error EXIT
22+
23+if [ "$AARCH64" = "1" ]; then
24+ # convert the arch specifier
25+ OPTS="$OPTS --cross-file config/arm/arm64_armv8_linuxapp_gcc"
26+fi
27+
28+OPTS="$OPTS --default-library=$DEF_LIB"
29+meson build --werror -Dexamples=all $OPTS
30+ninja -C build
31diff --git a/.ci/linux-setup.sh b/.ci/linux-setup.sh
32new file mode 100755
33index 0000000..acdf9f3
34--- /dev/null
35+++ b/.ci/linux-setup.sh
36@@ -0,0 +1,3 @@
37+#!/bin/sh
38+
39+python3 -m pip install --upgrade meson --user
40diff --git a/.gitignore b/.gitignore
41index 9105e26..1c3555a 100644
42--- a/.gitignore
43+++ b/.gitignore
44@@ -3,6 +3,10 @@ doc/guides/cryptodevs/overview_feature_table.txt
45 doc/guides/cryptodevs/overview_cipher_table.txt
46 doc/guides/cryptodevs/overview_auth_table.txt
47 doc/guides/cryptodevs/overview_aead_table.txt
48+<<<<<<< .gitignore
49+=======
50+doc/guides/cryptodevs/overview_asym_table.txt
51+>>>>>>> .gitignore
52 doc/guides/compressdevs/overview_feature_table.txt
53 cscope.out.po
54 cscope.out.in
55diff --git a/.travis.yml b/.travis.yml
56new file mode 100644
57index 0000000..7b167fa
58--- /dev/null
59+++ b/.travis.yml
60@@ -0,0 +1,98 @@
61+language: c
62+cache: ccache
63+compiler:
64+ - gcc
65+ - clang
66+
67+dist: xenial
68+
69+os:
70+ - linux
71+
72+addons:
73+ apt:
74+ update: true
75+ packages: &required_packages
76+ - [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]
77+
78+aarch64_packages: &aarch64_packages
79+ - *required_packages
80+ - [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross]
81+
82+extra_packages: &extra_packages
83+ - *required_packages
84+ - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4]
85+
86+before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
87+
88+env:
89+ - DEF_LIB="static"
90+ - DEF_LIB="shared"
91+ - DEF_LIB="static" OPTS="-Denable_kmods=false"
92+ - DEF_LIB="shared" OPTS="-Denable_kmods=false"
93+
94+matrix:
95+ include:
96+ - env: DEF_LIB="static" OPTS="-Denable_kmods=false" AARCH64=1
97+ compiler: gcc
98+ addons:
99+ apt:
100+ packages:
101+ - *aarch64_packages
102+ - env: DEF_LIB="shared" OPTS="-Denable_kmods=false" AARCH64=1
103+ compiler: gcc
104+ addons:
105+ apt:
106+ packages:
107+ - *aarch64_packages
108+ - env: DEF_LIB="static" EXTRA_PACKAGES=1
109+ compiler: gcc
110+ addons:
111+ apt:
112+ packages:
113+ - *extra_packages
114+ - env: DEF_LIB="shared" EXTRA_PACKAGES=1
115+ compiler: gcc
116+ addons:
117+ apt:
118+ packages:
119+ - *extra_packages
120+ - env: DEF_LIB="static" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
121+ compiler: gcc
122+ addons:
123+ apt:
124+ packages:
125+ - *extra_packages
126+ - env: DEF_LIB="shared" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
127+ compiler: gcc
128+ addons:
129+ apt:
130+ packages:
131+ - *extra_packages
132+ - env: DEF_LIB="static" EXTRA_PACKAGES=1
133+ compiler: clang
134+ addons:
135+ apt:
136+ packages:
137+ - *extra_packages
138+ - env: DEF_LIB="shared" EXTRA_PACKAGES=1
139+ compiler: clang
140+ addons:
141+ apt:
142+ packages:
143+ - *extra_packages
144+ - env: DEF_LIB="static" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
145+ compiler: clang
146+ addons:
147+ apt:
148+ packages:
149+ - *extra_packages
150+ - env: DEF_LIB="shared" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
151+ compiler: clang
152+ addons:
153+ apt:
154+ packages:
155+ - *extra_packages
156+
157+
158+script: ./.ci/${TRAVIS_OS_NAME}-build.sh
159diff --git a/MAINTAINERS b/MAINTAINERS
160index 71ba312..a19dbb3 100644
161--- a/MAINTAINERS
162+++ b/MAINTAINERS
163@@ -120,6 +120,15 @@ F: config/rte_config.h
164 F: buildtools/gen-pmdinfo-cfile.sh
165 F: buildtools/symlink-drivers-solibs.sh
166
167+<<<<<<< MAINTAINERS
168+=======
169+Public CI
170+M: Aaron Conole <aconole@redhat.com>
171+M: Michael Santana <msantana@redhat.com>
172+F: .travis.yml
173+F: .ci/
174+
175+>>>>>>> MAINTAINERS
176 ABI versioning
177 M: Neil Horman <nhorman@tuxdriver.com>
178 F: lib/librte_compat/
179@@ -234,7 +243,11 @@ F: drivers/net/i40e/i40e_rxtx_vec_neon.c
180 F: drivers/net/virtio/virtio_rxtx_simple_neon.c
181
182 IBM POWER (alpha)
183+<<<<<<< MAINTAINERS
184 M: Chao Zhu <chaozhu@linux.vnet.ibm.com>
185+=======
186+M: David Christensen <drc@linux.vnet.ibm.com>
187+>>>>>>> MAINTAINERS
188 F: lib/librte_eal/common/arch/ppc_64/
189 F: lib/librte_eal/common/include/arch/ppc_64/
190 F: drivers/net/i40e/i40e_rxtx_vec_altivec.c
191diff --git a/app/pdump/main.c b/app/pdump/main.c
192index 9e86bf6..7007cfe 100644
193--- a/app/pdump/main.c
194+++ b/app/pdump/main.c
195@@ -494,6 +494,10 @@ cleanup_pdump_resources(void)
196 {
197 int i;
198 struct pdump_tuples *pt;
199+<<<<<<< app/pdump/main.c
200+=======
201+ char name[RTE_ETH_NAME_MAX_LEN];
202+>>>>>>> app/pdump/main.c
203
204 /* disable pdump and free the pdump_tuple resources */
205 for (i = 0; i < num_tuples; i++) {
206@@ -510,6 +514,24 @@ cleanup_pdump_resources(void)
207 free_ring_data(pt->rx_ring, pt->rx_vdev_id, &pt->stats);
208 if (pt->dir & RTE_PDUMP_FLAG_TX)
209 free_ring_data(pt->tx_ring, pt->tx_vdev_id, &pt->stats);
210+<<<<<<< app/pdump/main.c
211+=======
212+
213+ /* Remove the vdev(s) created */
214+ if (pt->dir & RTE_PDUMP_FLAG_RX) {
215+ rte_eth_dev_get_name_by_port(pt->rx_vdev_id, name);
216+ rte_eal_hotplug_remove("vdev", name);
217+ }
218+
219+ if (pt->single_pdump_dev)
220+ continue;
221+
222+ if (pt->dir & RTE_PDUMP_FLAG_TX) {
223+ rte_eth_dev_get_name_by_port(pt->tx_vdev_id, name);
224+ rte_eal_hotplug_remove("vdev", name);
225+ }
226+
227+>>>>>>> app/pdump/main.c
228 }
229 cleanup_rings();
230 }
231diff --git a/app/test-bbdev/test_bbdev.c b/app/test-bbdev/test_bbdev.c
232index a914817..d64c5cd 100644
233--- a/app/test-bbdev/test_bbdev.c
234+++ b/app/test-bbdev/test_bbdev.c
235@@ -14,6 +14,11 @@
236 #include <rte_bbdev.h>
237 #include <rte_bbdev_op.h>
238 #include <rte_bbdev_pmd.h>
239+<<<<<<< app/test-bbdev/test_bbdev.c
240+=======
241+#include<string.h>
242+#include <rte_string_fns.h>
243+>>>>>>> app/test-bbdev/test_bbdev.c
244
245 #include "main.h"
246
247@@ -788,14 +793,22 @@ test_bbdev_driver_init(void)
248
249 /* Initialize the maximum amount of devices */
250 do {
251+<<<<<<< app/test-bbdev/test_bbdev.c
252 sprintf(name_tmp, "%s%i", "name_", num_devs);
253+=======
254+ snprintf(name_tmp, sizeof(name_tmp), "%s%i", "name_", num_devs);
255+>>>>>>> app/test-bbdev/test_bbdev.c
256 dev2 = rte_bbdev_allocate(name_tmp);
257 TEST_ASSERT(dev2 != NULL,
258 "Failed to initialize bbdev driver");
259 ++num_devs;
260 } while (num_devs < (RTE_BBDEV_MAX_DEVS - 1));
261
262+<<<<<<< app/test-bbdev/test_bbdev.c
263 sprintf(name_tmp, "%s%i", "name_", num_devs);
264+=======
265+ snprintf(name_tmp, sizeof(name_tmp), "%s%i", "name_", num_devs);
266+>>>>>>> app/test-bbdev/test_bbdev.c
267 dev2 = rte_bbdev_allocate(name_tmp);
268 TEST_ASSERT(dev2 == NULL, "Failed to initialize bbdev driver number %d "
269 "more drivers than RTE_BBDEV_MAX_DEVS: %d ", num_devs,
270@@ -804,7 +817,11 @@ test_bbdev_driver_init(void)
271 num_devs--;
272
273 while (num_devs >= num_devs_tmp) {
274+<<<<<<< app/test-bbdev/test_bbdev.c
275 sprintf(name_tmp, "%s%i", "name_", num_devs);
276+=======
277+ snprintf(name_tmp, sizeof(name_tmp), "%s%i", "name_", num_devs);
278+>>>>>>> app/test-bbdev/test_bbdev.c
279 dev2 = rte_bbdev_get_named_dev(name_tmp);
280 TEST_ASSERT_SUCCESS(rte_bbdev_release(dev2),
281 "Failed to uninitialize bbdev driver %s ",
282@@ -825,7 +842,11 @@ test_bbdev_driver_init(void)
283 TEST_ASSERT_FAIL(rte_bbdev_release(NULL),
284 "Failed to uninitialize bbdev driver with NULL bbdev");
285
286+<<<<<<< app/test-bbdev/test_bbdev.c
287 sprintf(name_tmp, "%s", "invalid_name");
288+=======
289+ strlcpy(name_tmp, "invalid_name", sizeof(name_tmp));
290+>>>>>>> app/test-bbdev/test_bbdev.c
291 dev2 = rte_bbdev_get_named_dev(name_tmp);
292 TEST_ASSERT_FAIL(rte_bbdev_release(dev2),
293 "Failed to uninitialize bbdev driver with invalid name");
294diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c
295index fbe6cc9..e4c5048 100644
296--- a/app/test-bbdev/test_bbdev_perf.c
297+++ b/app/test-bbdev/test_bbdev_perf.c
298@@ -1953,7 +1953,14 @@ offload_latency_test_dec(struct rte_mempool *mempool, struct test_buffers *bufs,
299 if (unlikely(num_to_process - dequeued < burst_sz))
300 burst_sz = num_to_process - dequeued;
301
302+<<<<<<< app/test-bbdev/test_bbdev_perf.c
303 rte_bbdev_dec_op_alloc_bulk(mempool, ops_enq, burst_sz);
304+=======
305+ ret = rte_bbdev_dec_op_alloc_bulk(mempool, ops_enq, burst_sz);
306+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops",
307+ burst_sz);
308+
309+>>>>>>> app/test-bbdev/test_bbdev_perf.c
310 if (test_vector.op_type != RTE_BBDEV_OP_NONE)
311 copy_reference_dec_op(ops_enq, burst_sz, dequeued,
312 bufs->inputs,
313@@ -2035,7 +2042,14 @@ offload_latency_test_enc(struct rte_mempool *mempool, struct test_buffers *bufs,
314 if (unlikely(num_to_process - dequeued < burst_sz))
315 burst_sz = num_to_process - dequeued;
316
317+<<<<<<< app/test-bbdev/test_bbdev_perf.c
318 rte_bbdev_enc_op_alloc_bulk(mempool, ops_enq, burst_sz);
319+=======
320+ ret = rte_bbdev_enc_op_alloc_bulk(mempool, ops_enq, burst_sz);
321+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops",
322+ burst_sz);
323+
324+>>>>>>> app/test-bbdev/test_bbdev_perf.c
325 if (test_vector.op_type != RTE_BBDEV_OP_NONE)
326 copy_reference_enc_op(ops_enq, burst_sz, dequeued,
327 bufs->inputs,
328diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c
329index 953e058..f383fd2 100644
330--- a/app/test-crypto-perf/main.c
331+++ b/app/test-crypto-perf/main.c
332@@ -129,6 +129,14 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs,
333
334 struct rte_cryptodev_info cdev_info;
335 uint8_t socket_id = rte_cryptodev_socket_id(cdev_id);
336+<<<<<<< app/test-crypto-perf/main.c
337+=======
338+ /* range check the socket_id - negative values become big
339+ * positive ones due to use of unsigned value
340+ */
341+ if (socket_id >= RTE_MAX_NUMA_NODES)
342+ socket_id = 0;
343+>>>>>>> app/test-crypto-perf/main.c
344
345 rte_cryptodev_info_get(cdev_id, &cdev_info);
346 if (opts->nb_qps > cdev_info.max_nb_queue_pairs) {
347diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c
348index 8618775..c17db81 100644
349--- a/app/test-eventdev/test_perf_common.c
350+++ b/app/test-eventdev/test_perf_common.c
351@@ -327,7 +327,12 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt,
352 }
353
354 if (new_cycles - dead_lock_cycles > dead_lock_sample &&
355+<<<<<<< app/test-eventdev/test_perf_common.c
356 opt->prod_type == EVT_PROD_TYPE_SYNT) {
357+=======
358+ (opt->prod_type == EVT_PROD_TYPE_SYNT ||
359+ opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR)) {
360+>>>>>>> app/test-eventdev/test_perf_common.c
361 remaining = t->outstand_pkts - processed_pkts(t);
362 if (dead_lock_remaining == remaining) {
363 rte_event_dev_dump(opt->dev_id, stdout);
364diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
365index 1275074..63b6f4a 100644
366--- a/app/test-pmd/cmdline.c
367+++ b/app/test-pmd/cmdline.c
368@@ -94,6 +94,7 @@ static void cmd_help_brief_parsed(__attribute__((unused)) void *parsed_result,
369 cl,
370 "\n"
371 "Help is available for the following sections:\n\n"
372+<<<<<<< app/test-pmd/cmdline.c
373 " help control : Start and stop forwarding.\n"
374 " help display : Displaying port, stats and config "
375 "information.\n"
376@@ -102,6 +103,17 @@ static void cmd_help_brief_parsed(__attribute__((unused)) void *parsed_result,
377 " help registers : Reading and setting port registers.\n"
378 " help filters : Filters configuration help.\n"
379 " help all : All of the above sections.\n\n"
380+=======
381+ " help control : Start and stop forwarding.\n"
382+ " help display : Displaying port, stats and config "
383+ "information.\n"
384+ " help config : Configuration information.\n"
385+ " help ports : Configuring ports.\n"
386+ " help registers : Reading and setting port registers.\n"
387+ " help filters : Filters configuration help.\n"
388+ " help traffic_management : Traffic Management commmands.\n"
389+ " help all : All of the above sections.\n\n"
390+>>>>>>> app/test-pmd/cmdline.c
391 );
392
393 }
394@@ -210,6 +222,7 @@ static void cmd_help_long_parsed(void *parsed_result,
395
396 "show port meter stats (port_id) (meter_id) (clear)\n"
397 " Get meter stats on a port\n\n"
398+<<<<<<< app/test-pmd/cmdline.c
399 "show port tm cap (port_id)\n"
400 " Display the port TM capability.\n\n"
401
402@@ -225,6 +238,34 @@ static void cmd_help_long_parsed(void *parsed_result,
403 "show port tm node stats (port_id) (node_id) (clear)\n"
404 " Display the port TM node stats.\n\n"
405
406+=======
407+
408+ "show fwd stats all\n"
409+ " Display statistics for all fwd engines.\n\n"
410+
411+ "clear fwd stats all\n"
412+ " Clear statistics for all fwd engines.\n\n"
413+
414+ "show port (port_id) rx_offload capabilities\n"
415+ " List all per queue and per port Rx offloading"
416+ " capabilities of a port\n\n"
417+
418+ "show port (port_id) rx_offload configuration\n"
419+ " List port level and all queue level"
420+ " Rx offloading configuration\n\n"
421+
422+ "show port (port_id) tx_offload capabilities\n"
423+ " List all per queue and per port"
424+ " Tx offloading capabilities of a port\n\n"
425+
426+ "show port (port_id) tx_offload configuration\n"
427+ " List port level and all queue level"
428+ " Tx offloading configuration\n\n"
429+
430+ "show port (port_id) tx_metadata\n"
431+ " Show Tx metadata value set"
432+ " for a specific port\n\n"
433+>>>>>>> app/test-pmd/cmdline.c
434 );
435 }
436
437@@ -642,11 +683,14 @@ static void cmd_help_long_parsed(void *parsed_result,
438 "E-tag set filter del e-tag-id (value) port (port_id)\n"
439 " Delete an E-tag forwarding filter on a port\n\n"
440
441+<<<<<<< app/test-pmd/cmdline.c
442 #if defined RTE_LIBRTE_PMD_SOFTNIC && defined RTE_LIBRTE_SCHED
443 "set port tm hierarchy default (port_id)\n"
444 " Set default traffic Management hierarchy on a port\n\n"
445
446 #endif
447+=======
448+>>>>>>> app/test-pmd/cmdline.c
449 "ddp add (port_id) (profile_path[,backup_profile_path])\n"
450 " Load a profile package on a port\n\n"
451
452@@ -727,6 +771,7 @@ static void cmd_help_long_parsed(void *parsed_result,
453 "show port (port_id) queue-region\n"
454 " show all queue region related configuration info\n\n"
455
456+<<<<<<< app/test-pmd/cmdline.c
457 "add port tm node shaper profile (port_id) (shaper_profile_id)"
458 " (cmit_tb_rate) (cmit_tb_size) (peak_tb_rate) (peak_tb_size)"
459 " (packet_length_adjust)\n"
460@@ -783,6 +828,8 @@ static void cmd_help_long_parsed(void *parsed_result,
461 "port tm hierarchy commit (port_id) (clean_on_fail)\n"
462 " Commit tm hierarchy.\n\n"
463
464+=======
465+>>>>>>> app/test-pmd/cmdline.c
466 "vxlan ip-version (ipv4|ipv6) vni (vni) udp-src"
467 " (udp-src) udp-dst (udp-dst) ip-src (ip-src) ip-dst"
468 " (ip-dst) eth-src (eth-src) eth-dst (eth-dst)\n"
469@@ -918,6 +965,55 @@ static void cmd_help_long_parsed(void *parsed_result,
470
471 "port config (port_id) udp_tunnel_port add|rm vxlan|geneve (udp_port)\n\n"
472 " Add/remove UDP tunnel port for tunneling offload\n\n"
473+<<<<<<< app/test-pmd/cmdline.c
474+=======
475+
476+ "port config <port_id> rx_offload vlan_strip|"
477+ "ipv4_cksum|udp_cksum|tcp_cksum|tcp_lro|qinq_strip|"
478+ "outer_ipv4_cksum|macsec_strip|header_split|"
479+ "vlan_filter|vlan_extend|jumbo_frame|crc_strip|"
480+ "scatter|timestamp|security|keep_crc on|off\n"
481+ " Enable or disable a per port Rx offloading"
482+ " on all Rx queues of a port\n\n"
483+
484+ "port (port_id) rxq (queue_id) rx_offload vlan_strip|"
485+ "ipv4_cksum|udp_cksum|tcp_cksum|tcp_lro|qinq_strip|"
486+ "outer_ipv4_cksum|macsec_strip|header_split|"
487+ "vlan_filter|vlan_extend|jumbo_frame|crc_strip|"
488+ "scatter|timestamp|security|keep_crc on|off\n"
489+ " Enable or disable a per queue Rx offloading"
490+ " only on a specific Rx queue\n\n"
491+
492+ "port config (port_id) tx_offload vlan_insert|"
493+ "ipv4_cksum|udp_cksum|tcp_cksum|sctp_cksum|tcp_tso|"
494+ "udp_tso|outer_ipv4_cksum|qinq_insert|vxlan_tnl_tso|"
495+ "gre_tnl_tso|ipip_tnl_tso|geneve_tnl_tso|"
496+ "macsec_insert|mt_lockfree|multi_segs|mbuf_fast_free|"
497+ "security|match_metadata on|off\n"
498+ " Enable or disable a per port Tx offloading"
499+ " on all Tx queues of a port\n\n"
500+
501+ "port (port_id) txq (queue_id) tx_offload vlan_insert|"
502+ "ipv4_cksum|udp_cksum|tcp_cksum|sctp_cksum|tcp_tso|"
503+ "udp_tso|outer_ipv4_cksum|qinq_insert|vxlan_tnl_tso|"
504+ "gre_tnl_tso|ipip_tnl_tso|geneve_tnl_tso|macsec_insert"
505+ "|mt_lockfree|multi_segs|mbuf_fast_free|security"
506+ " on|off\n"
507+ " Enable or disable a per queue Tx offloading"
508+ " only on a specific Tx queue\n\n"
509+
510+ "bpf-load rx|tx (port) (queue) (J|M|B) (file_name)\n"
511+ " Load an eBPF program as a callback"
512+ " for particular RX/TX queue\n\n"
513+
514+ "bpf-unload rx|tx (port) (queue)\n"
515+ " Unload previously loaded eBPF program"
516+ " for particular RX/TX queue\n\n"
517+
518+ "port config (port_id) tx_metadata (value)\n"
519+ " Set Tx metadata value per port. Testpmd will add this value"
520+ " to any Tx packet sent from this port\n\n"
521+>>>>>>> app/test-pmd/cmdline.c
522 );
523 }
524
525@@ -1137,6 +1233,110 @@ static void cmd_help_long_parsed(void *parsed_result,
526 " flow rules\n\n"
527 );
528 }
529+<<<<<<< app/test-pmd/cmdline.c
530+=======
531+
532+ if (show_all || !strcmp(res->section, "traffic_management")) {
533+ cmdline_printf(
534+ cl,
535+ "\n"
536+ "Traffic Management:\n"
537+ "--------------\n"
538+ "show port tm cap (port_id)\n"
539+ " Display the port TM capability.\n\n"
540+
541+ "show port tm level cap (port_id) (level_id)\n"
542+ " Display the port TM hierarchical level capability.\n\n"
543+
544+ "show port tm node cap (port_id) (node_id)\n"
545+ " Display the port TM node capability.\n\n"
546+
547+ "show port tm node type (port_id) (node_id)\n"
548+ " Display the port TM node type.\n\n"
549+
550+ "show port tm node stats (port_id) (node_id) (clear)\n"
551+ " Display the port TM node stats.\n\n"
552+
553+#if defined RTE_LIBRTE_PMD_SOFTNIC && defined RTE_LIBRTE_SCHED
554+ "set port tm hierarchy default (port_id)\n"
555+ " Set default traffic Management hierarchy on a port\n\n"
556+#endif
557+
558+ "add port tm node shaper profile (port_id) (shaper_profile_id)"
559+ " (cmit_tb_rate) (cmit_tb_size) (peak_tb_rate) (peak_tb_size)"
560+ " (packet_length_adjust)\n"
561+ " Add port tm node private shaper profile.\n\n"
562+
563+ "del port tm node shaper profile (port_id) (shaper_profile_id)\n"
564+ " Delete port tm node private shaper profile.\n\n"
565+
566+ "add port tm node shared shaper (port_id) (shared_shaper_id)"
567+ " (shaper_profile_id)\n"
568+ " Add/update port tm node shared shaper.\n\n"
569+
570+ "del port tm node shared shaper (port_id) (shared_shaper_id)\n"
571+ " Delete port tm node shared shaper.\n\n"
572+
573+ "set port tm node shaper profile (port_id) (node_id)"
574+ " (shaper_profile_id)\n"
575+ " Set port tm node shaper profile.\n\n"
576+
577+ "add port tm node wred profile (port_id) (wred_profile_id)"
578+ " (color_g) (min_th_g) (max_th_g) (maxp_inv_g) (wq_log2_g)"
579+ " (color_y) (min_th_y) (max_th_y) (maxp_inv_y) (wq_log2_y)"
580+ " (color_r) (min_th_r) (max_th_r) (maxp_inv_r) (wq_log2_r)\n"
581+ " Add port tm node wred profile.\n\n"
582+
583+ "del port tm node wred profile (port_id) (wred_profile_id)\n"
584+ " Delete port tm node wred profile.\n\n"
585+
586+ "add port tm nonleaf node (port_id) (node_id) (parent_node_id)"
587+ " (priority) (weight) (level_id) (shaper_profile_id)"
588+ " (n_sp_priorities) (stats_mask) (n_shared_shapers)"
589+ " [(shared_shaper_id_0) (shared_shaper_id_1)...]\n"
590+ " Add port tm nonleaf node.\n\n"
591+
592+ "add port tm leaf node (port_id) (node_id) (parent_node_id)"
593+ " (priority) (weight) (level_id) (shaper_profile_id)"
594+ " (cman_mode) (wred_profile_id) (stats_mask) (n_shared_shapers)"
595+ " [(shared_shaper_id_0) (shared_shaper_id_1)...]\n"
596+ " Add port tm leaf node.\n\n"
597+
598+ "del port tm node (port_id) (node_id)\n"
599+ " Delete port tm node.\n\n"
600+
601+ "set port tm node parent (port_id) (node_id) (parent_node_id)"
602+ " (priority) (weight)\n"
603+ " Set port tm node parent.\n\n"
604+
605+ "suspend port tm node (port_id) (node_id)"
606+ " Suspend tm node.\n\n"
607+
608+ "resume port tm node (port_id) (node_id)"
609+ " Resume tm node.\n\n"
610+
611+ "port tm hierarchy commit (port_id) (clean_on_fail)\n"
612+ " Commit tm hierarchy.\n\n"
613+
614+ "set port tm mark ip_ecn (port) (green) (yellow)"
615+ " (red)\n"
616+ " Enables/Disables the traffic management marking"
617+ " for IP ECN (Explicit Congestion Notification)"
618+ " packets on a given port\n\n"
619+
620+ "set port tm mark ip_dscp (port) (green) (yellow)"
621+ " (red)\n"
622+ " Enables/Disables the traffic management marking"
623+ " on the port for IP dscp packets\n\n"
624+
625+ "set port tm mark vlan_dei (port) (green) (yellow)"
626+ " (red)\n"
627+ " Enables/Disables the traffic management marking"
628+ " on the port for VLAN packets with DEI enabled\n\n"
629+ );
630+ }
631+
632+>>>>>>> app/test-pmd/cmdline.c
633 }
634
635 cmdline_parse_token_string_t cmd_help_long_help =
636@@ -1145,12 +1345,21 @@ cmdline_parse_token_string_t cmd_help_long_help =
637 cmdline_parse_token_string_t cmd_help_long_section =
638 TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
639 "all#control#display#config#"
640+<<<<<<< app/test-pmd/cmdline.c
641 "ports#registers#filters");
642+=======
643+ "ports#registers#filters#traffic_management");
644+>>>>>>> app/test-pmd/cmdline.c
645
646 cmdline_parse_inst_t cmd_help_long = {
647 .f = cmd_help_long_parsed,
648 .data = NULL,
649+<<<<<<< app/test-pmd/cmdline.c
650 .help_str = "help all|control|display|config|ports|register|filters: "
651+=======
652+ .help_str = "help all|control|display|config|ports|register|"
653+ "filters|traffic_management: "
654+>>>>>>> app/test-pmd/cmdline.c
655 "Show help",
656 .tokens = {
657 (void *)&cmd_help_long_help,
658@@ -12070,7 +12279,11 @@ cmd_set_hash_global_config_parsed(void *parsed_result,
659 res->port_id);
660 else
661 printf("Global hash configurations have been set "
662+<<<<<<< app/test-pmd/cmdline.c
663 "succcessfully by port %d\n", res->port_id);
664+=======
665+ "successfully by port %d\n", res->port_id);
666+>>>>>>> app/test-pmd/cmdline.c
667 }
668
669 cmdline_parse_token_string_t cmd_set_hash_global_config_all =
670@@ -15567,10 +15780,16 @@ static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
671 struct cmd_set_mplsogre_encap_result *res = parsed_result;
672 union {
673 uint32_t mplsogre_label;
674+<<<<<<< app/test-pmd/cmdline.c
675 uint8_t label[3];
676 } id = {
677 .mplsogre_label =
678 rte_cpu_to_be_32(res->label) & RTE_BE32(0x00ffffff),
679+=======
680+ uint8_t label[4];
681+ } id = {
682+ .mplsogre_label = rte_cpu_to_be_32(res->label<<12),
683+>>>>>>> app/test-pmd/cmdline.c
684 };
685
686 if (strcmp(res->mplsogre, "mplsogre_encap") == 0)
687@@ -15583,7 +15802,11 @@ static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
688 mplsogre_encap_conf.select_ipv4 = 0;
689 else
690 return;
691+<<<<<<< app/test-pmd/cmdline.c
692 rte_memcpy(mplsogre_encap_conf.label, &id.label[1], 3);
693+=======
694+ rte_memcpy(mplsogre_encap_conf.label, &id.label, 3);
695+>>>>>>> app/test-pmd/cmdline.c
696 if (mplsogre_encap_conf.select_ipv4) {
697 IPV4_ADDR_TO_UINT(res->ip_src, mplsogre_encap_conf.ipv4_src);
698 IPV4_ADDR_TO_UINT(res->ip_dst, mplsogre_encap_conf.ipv4_dst);
699@@ -15804,10 +16027,16 @@ static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
700 struct cmd_set_mplsoudp_encap_result *res = parsed_result;
701 union {
702 uint32_t mplsoudp_label;
703+<<<<<<< app/test-pmd/cmdline.c
704 uint8_t label[3];
705 } id = {
706 .mplsoudp_label =
707 rte_cpu_to_be_32(res->label) & RTE_BE32(0x00ffffff),
708+=======
709+ uint8_t label[4];
710+ } id = {
711+ .mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
712+>>>>>>> app/test-pmd/cmdline.c
713 };
714
715 if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
716@@ -15820,7 +16049,11 @@ static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
717 mplsoudp_encap_conf.select_ipv4 = 0;
718 else
719 return;
720+<<<<<<< app/test-pmd/cmdline.c
721 rte_memcpy(mplsoudp_encap_conf.label, &id.label[1], 3);
722+=======
723+ rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
724+>>>>>>> app/test-pmd/cmdline.c
725 mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
726 mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
727 if (mplsoudp_encap_conf.select_ipv4) {
728@@ -17627,7 +17860,11 @@ print_rx_offloads(uint64_t offloads)
729 begin = __builtin_ctzll(offloads);
730 end = sizeof(offloads) * CHAR_BIT - __builtin_clzll(offloads);
731
732+<<<<<<< app/test-pmd/cmdline.c
733 single_offload = 1 << begin;
734+=======
735+ single_offload = 1ULL << begin;
736+>>>>>>> app/test-pmd/cmdline.c
737 for (bit = begin; bit < end; bit++) {
738 if (offloads & single_offload)
739 printf(" %s",
740@@ -18021,7 +18258,11 @@ print_tx_offloads(uint64_t offloads)
741 begin = __builtin_ctzll(offloads);
742 end = sizeof(offloads) * CHAR_BIT - __builtin_clzll(offloads);
743
744+<<<<<<< app/test-pmd/cmdline.c
745 single_offload = 1 << begin;
746+=======
747+ single_offload = 1ULL << begin;
748+>>>>>>> app/test-pmd/cmdline.c
749 for (bit = begin; bit < end; bit++) {
750 if (offloads & single_offload)
751 printf(" %s",
752@@ -18198,13 +18439,21 @@ search_tx_offload(const char *name)
753 single_offload = 1;
754 for (bit = 0; bit < sizeof(single_offload) * CHAR_BIT; bit++) {
755 single_name = rte_eth_dev_tx_offload_name(single_offload);
756+<<<<<<< app/test-pmd/cmdline.c
757+=======
758+ if (single_name == NULL)
759+ break;
760+>>>>>>> app/test-pmd/cmdline.c
761 if (!strcasecmp(single_name, name)) {
762 found = 1;
763 break;
764 } else if (!strcasecmp(single_name, "UNKNOWN"))
765 break;
766+<<<<<<< app/test-pmd/cmdline.c
767 else if (single_name == NULL)
768 break;
769+=======
770+>>>>>>> app/test-pmd/cmdline.c
771 single_offload <<= 1;
772 }
773
774@@ -18457,7 +18706,11 @@ cmd_show_tx_metadata_parsed(void *parsed_result,
775 }
776 if (!strcmp(res->cmd_keyword, "tx_metadata")) {
777 printf("Port %u tx_metadata: %u\n", res->cmd_pid,
778+<<<<<<< app/test-pmd/cmdline.c
779 ports[res->cmd_pid].tx_metadata);
780+=======
781+ rte_be_to_cpu_32(ports[res->cmd_pid].tx_metadata));
782+>>>>>>> app/test-pmd/cmdline.c
783 }
784 }
785
786diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
787index 23ea7cc..e8f5f53 100644
788--- a/app/test-pmd/cmdline_flow.c
789+++ b/app/test-pmd/cmdline_flow.c
790@@ -35,6 +35,10 @@ enum index {
791 PREFIX,
792 BOOLEAN,
793 STRING,
794+<<<<<<< app/test-pmd/cmdline_flow.c
795+=======
796+ HEX,
797+>>>>>>> app/test-pmd/cmdline_flow.c
798 MAC_ADDR,
799 IPV4_ADDR,
800 IPV6_ADDR,
801@@ -1122,6 +1126,12 @@ static int parse_boolean(struct context *, const struct token *,
802 static int parse_string(struct context *, const struct token *,
803 const char *, unsigned int,
804 void *, unsigned int);
805+<<<<<<< app/test-pmd/cmdline_flow.c
806+=======
807+static int parse_hex(struct context *ctx, const struct token *token,
808+ const char *str, unsigned int len,
809+ void *buf, unsigned int size);
810+>>>>>>> app/test-pmd/cmdline_flow.c
811 static int parse_mac_addr(struct context *, const struct token *,
812 const char *, unsigned int,
813 void *, unsigned int);
814@@ -1198,6 +1208,16 @@ static const struct token token_list[] = {
815 .call = parse_string,
816 .comp = comp_none,
817 },
818+<<<<<<< app/test-pmd/cmdline_flow.c
819+=======
820+ [HEX] = {
821+ .name = "{hex}",
822+ .type = "HEX",
823+ .help = "fixed string",
824+ .call = parse_hex,
825+ .comp = comp_none,
826+ },
827+>>>>>>> app/test-pmd/cmdline_flow.c
828 [MAC_ADDR] = {
829 .name = "{MAC address}",
830 .type = "MAC-48",
831@@ -2306,7 +2326,11 @@ static const struct token token_list[] = {
832 [ACTION_RSS_KEY] = {
833 .name = "key",
834 .help = "RSS hash key",
835+<<<<<<< app/test-pmd/cmdline_flow.c
836 .next = NEXT(action_rss, NEXT_ENTRY(STRING)),
837+=======
838+ .next = NEXT(action_rss, NEXT_ENTRY(HEX)),
839+>>>>>>> app/test-pmd/cmdline_flow.c
840 .args = ARGS(ARGS_ENTRY_ARB(0, 0),
841 ARGS_ENTRY_ARB
842 (offsetof(struct action_rss_data, conf) +
843@@ -3808,6 +3832,10 @@ parse_vc_action_mplsogre_encap(struct context *ctx, const struct token *token,
844 header += sizeof(gre);
845 memcpy(mpls.label_tc_s, mplsogre_encap_conf.label,
846 RTE_DIM(mplsogre_encap_conf.label));
847+<<<<<<< app/test-pmd/cmdline_flow.c
848+=======
849+ mpls.label_tc_s[2] |= 0x1;
850+>>>>>>> app/test-pmd/cmdline_flow.c
851 memcpy(header, &mpls, sizeof(mpls));
852 header += sizeof(mpls);
853 action_encap_data->conf.size = header -
854@@ -3998,6 +4026,10 @@ parse_vc_action_mplsoudp_encap(struct context *ctx, const struct token *token,
855 header += sizeof(udp);
856 memcpy(mpls.label_tc_s, mplsoudp_encap_conf.label,
857 RTE_DIM(mplsoudp_encap_conf.label));
858+<<<<<<< app/test-pmd/cmdline_flow.c
859+=======
860+ mpls.label_tc_s[2] |= 0x1;
861+>>>>>>> app/test-pmd/cmdline_flow.c
862 memcpy(header, &mpls, sizeof(mpls));
863 header += sizeof(mpls);
864 action_encap_data->conf.size = header -
865@@ -4439,6 +4471,124 @@ error:
866 return -1;
867 }
868
869+<<<<<<< app/test-pmd/cmdline_flow.c
870+=======
871+static int
872+parse_hex_string(const char *src, uint8_t *dst, uint32_t *size)
873+{
874+ char *c = NULL;
875+ uint32_t i, len;
876+ char tmp[3];
877+
878+ /* Check input parameters */
879+ if ((src == NULL) ||
880+ (dst == NULL) ||
881+ (size == NULL) ||
882+ (*size == 0))
883+ return -1;
884+
885+ /* Convert chars to bytes */
886+ for (i = 0, len = 0; i < *size; i += 2) {
887+ snprintf(tmp, 3, "%s", src + i);
888+ dst[len++] = strtoul(tmp, &c, 16);
889+ if (*c != 0) {
890+ len--;
891+ dst[len] = 0;
892+ *size = len;
893+ return -1;
894+ }
895+ }
896+ dst[len] = 0;
897+ *size = len;
898+
899+ return 0;
900+}
901+
902+static int
903+parse_hex(struct context *ctx, const struct token *token,
904+ const char *str, unsigned int len,
905+ void *buf, unsigned int size)
906+{
907+ const struct arg *arg_data = pop_args(ctx);
908+ const struct arg *arg_len = pop_args(ctx);
909+ const struct arg *arg_addr = pop_args(ctx);
910+ char tmp[16]; /* Ought to be enough. */
911+ int ret;
912+ unsigned int hexlen = len;
913+ unsigned int length = 256;
914+ uint8_t hex_tmp[length];
915+
916+ /* Arguments are expected. */
917+ if (!arg_data)
918+ return -1;
919+ if (!arg_len) {
920+ push_args(ctx, arg_data);
921+ return -1;
922+ }
923+ if (!arg_addr) {
924+ push_args(ctx, arg_len);
925+ push_args(ctx, arg_data);
926+ return -1;
927+ }
928+ size = arg_data->size;
929+ /* Bit-mask fill is not supported. */
930+ if (arg_data->mask)
931+ goto error;
932+ if (!ctx->object)
933+ return len;
934+
935+ /* translate bytes string to array. */
936+ if (str[0] == '0' && ((str[1] == 'x') ||
937+ (str[1] == 'X'))) {
938+ str += 2;
939+ hexlen -= 2;
940+ }
941+ if (hexlen > length)
942+ return -1;
943+ ret = parse_hex_string(str, hex_tmp, &hexlen);
944+ if (ret < 0)
945+ goto error;
946+ /* Let parse_int() fill length information first. */
947+ ret = snprintf(tmp, sizeof(tmp), "%u", hexlen);
948+ if (ret < 0)
949+ goto error;
950+ push_args(ctx, arg_len);
951+ ret = parse_int(ctx, token, tmp, ret, NULL, 0);
952+ if (ret < 0) {
953+ pop_args(ctx);
954+ goto error;
955+ }
956+ buf = (uint8_t *)ctx->object + arg_data->offset;
957+ /* Output buffer is not necessarily NUL-terminated. */
958+ memcpy(buf, hex_tmp, hexlen);
959+ memset((uint8_t *)buf + hexlen, 0x00, size - hexlen);
960+ if (ctx->objmask)
961+ memset((uint8_t *)ctx->objmask + arg_data->offset,
962+ 0xff, hexlen);
963+ /* Save address if requested. */
964+ if (arg_addr->size) {
965+ memcpy((uint8_t *)ctx->object + arg_addr->offset,
966+ (void *[]){
967+ (uint8_t *)ctx->object + arg_data->offset
968+ },
969+ arg_addr->size);
970+ if (ctx->objmask)
971+ memcpy((uint8_t *)ctx->objmask + arg_addr->offset,
972+ (void *[]){
973+ (uint8_t *)ctx->objmask + arg_data->offset
974+ },
975+ arg_addr->size);
976+ }
977+ return len;
978+error:
979+ push_args(ctx, arg_addr);
980+ push_args(ctx, arg_len);
981+ push_args(ctx, arg_data);
982+ return -1;
983+
984+}
985+
986+>>>>>>> app/test-pmd/cmdline_flow.c
987 /**
988 * Parse a MAC address.
989 *
990diff --git a/app/test-pmd/cmdline_tm.c b/app/test-pmd/cmdline_tm.c
991index 4c76348..1b9bf2a 100644
992--- a/app/test-pmd/cmdline_tm.c
993+++ b/app/test-pmd/cmdline_tm.c
994@@ -1156,6 +1156,7 @@ struct cmd_add_port_tm_node_wred_profile_result {
995 uint16_t port_id;
996 uint32_t wred_profile_id;
997 cmdline_fixed_string_t color_g;
998+<<<<<<< app/test-pmd/cmdline_tm.c
999 uint16_t min_th_g;
1000 uint16_t max_th_g;
1001 uint16_t maxp_inv_g;
1002@@ -1168,6 +1169,20 @@ struct cmd_add_port_tm_node_wred_profile_result {
1003 cmdline_fixed_string_t color_r;
1004 uint16_t min_th_r;
1005 uint16_t max_th_r;
1006+=======
1007+ uint64_t min_th_g;
1008+ uint64_t max_th_g;
1009+ uint16_t maxp_inv_g;
1010+ uint16_t wq_log2_g;
1011+ cmdline_fixed_string_t color_y;
1012+ uint64_t min_th_y;
1013+ uint64_t max_th_y;
1014+ uint16_t maxp_inv_y;
1015+ uint16_t wq_log2_y;
1016+ cmdline_fixed_string_t color_r;
1017+ uint64_t min_th_r;
1018+ uint64_t max_th_r;
1019+>>>>>>> app/test-pmd/cmdline_tm.c
1020 uint16_t maxp_inv_r;
1021 uint16_t wq_log2_r;
1022 };
1023@@ -1206,11 +1221,19 @@ cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_g =
1024 cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_g =
1025 TOKEN_NUM_INITIALIZER(
1026 struct cmd_add_port_tm_node_wred_profile_result,
1027+<<<<<<< app/test-pmd/cmdline_tm.c
1028 min_th_g, UINT16);
1029 cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_g =
1030 TOKEN_NUM_INITIALIZER(
1031 struct cmd_add_port_tm_node_wred_profile_result,
1032 max_th_g, UINT16);
1033+=======
1034+ min_th_g, UINT64);
1035+cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_g =
1036+ TOKEN_NUM_INITIALIZER(
1037+ struct cmd_add_port_tm_node_wred_profile_result,
1038+ max_th_g, UINT64);
1039+>>>>>>> app/test-pmd/cmdline_tm.c
1040 cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_g =
1041 TOKEN_NUM_INITIALIZER(
1042 struct cmd_add_port_tm_node_wred_profile_result,
1043@@ -1226,11 +1249,19 @@ cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_y =
1044 cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_y =
1045 TOKEN_NUM_INITIALIZER(
1046 struct cmd_add_port_tm_node_wred_profile_result,
1047+<<<<<<< app/test-pmd/cmdline_tm.c
1048 min_th_y, UINT16);
1049 cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_y =
1050 TOKEN_NUM_INITIALIZER(
1051 struct cmd_add_port_tm_node_wred_profile_result,
1052 max_th_y, UINT16);
1053+=======
1054+ min_th_y, UINT64);
1055+cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_y =
1056+ TOKEN_NUM_INITIALIZER(
1057+ struct cmd_add_port_tm_node_wred_profile_result,
1058+ max_th_y, UINT64);
1059+>>>>>>> app/test-pmd/cmdline_tm.c
1060 cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_y =
1061 TOKEN_NUM_INITIALIZER(
1062 struct cmd_add_port_tm_node_wred_profile_result,
1063@@ -1246,11 +1277,19 @@ cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_r =
1064 cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_r =
1065 TOKEN_NUM_INITIALIZER(
1066 struct cmd_add_port_tm_node_wred_profile_result,
1067+<<<<<<< app/test-pmd/cmdline_tm.c
1068 min_th_r, UINT16);
1069 cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_r =
1070 TOKEN_NUM_INITIALIZER(
1071 struct cmd_add_port_tm_node_wred_profile_result,
1072 max_th_r, UINT16);
1073+=======
1074+ min_th_r, UINT64);
1075+cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_r =
1076+ TOKEN_NUM_INITIALIZER(
1077+ struct cmd_add_port_tm_node_wred_profile_result,
1078+ max_th_r, UINT64);
1079+>>>>>>> app/test-pmd/cmdline_tm.c
1080 cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_r =
1081 TOKEN_NUM_INITIALIZER(
1082 struct cmd_add_port_tm_node_wred_profile_result,
1083diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
1084index b9e5dd9..93d5fb9 100644
1085--- a/app/test-pmd/config.c
1086+++ b/app/test-pmd/config.c
1087@@ -2955,7 +2955,10 @@ vlan_tpid_set(portid_t port_id, enum rte_vlan_type vlan_type, uint16_t tp_id)
1088 void
1089 tx_vlan_set(portid_t port_id, uint16_t vlan_id)
1090 {
1091+<<<<<<< app/test-pmd/config.c
1092 int vlan_offload;
1093+=======
1094+>>>>>>> app/test-pmd/config.c
1095 struct rte_eth_dev_info dev_info;
1096
1097 if (port_id_is_invalid(port_id, ENABLED_WARN))
1098@@ -2963,8 +2966,13 @@ tx_vlan_set(portid_t port_id, uint16_t vlan_id)
1099 if (vlan_id_is_invalid(vlan_id))
1100 return;
1101
1102+<<<<<<< app/test-pmd/config.c
1103 vlan_offload = rte_eth_dev_get_vlan_offload(port_id);
1104 if (vlan_offload & ETH_VLAN_EXTEND_OFFLOAD) {
1105+=======
1106+ if (ports[port_id].dev_conf.txmode.offloads &
1107+ DEV_TX_OFFLOAD_QINQ_INSERT) {
1108+>>>>>>> app/test-pmd/config.c
1109 printf("Error, as QinQ has been enabled.\n");
1110 return;
1111 }
1112@@ -2983,7 +2991,10 @@ tx_vlan_set(portid_t port_id, uint16_t vlan_id)
1113 void
1114 tx_qinq_set(portid_t port_id, uint16_t vlan_id, uint16_t vlan_id_outer)
1115 {
1116+<<<<<<< app/test-pmd/config.c
1117 int vlan_offload;
1118+=======
1119+>>>>>>> app/test-pmd/config.c
1120 struct rte_eth_dev_info dev_info;
1121
1122 if (port_id_is_invalid(port_id, ENABLED_WARN))
1123@@ -2993,11 +3004,14 @@ tx_qinq_set(portid_t port_id, uint16_t vlan_id, uint16_t vlan_id_outer)
1124 if (vlan_id_is_invalid(vlan_id_outer))
1125 return;
1126
1127+<<<<<<< app/test-pmd/config.c
1128 vlan_offload = rte_eth_dev_get_vlan_offload(port_id);
1129 if (!(vlan_offload & ETH_VLAN_EXTEND_OFFLOAD)) {
1130 printf("Error, as QinQ hasn't been enabled.\n");
1131 return;
1132 }
1133+=======
1134+>>>>>>> app/test-pmd/config.c
1135 rte_eth_dev_info_get(port_id, &dev_info);
1136 if ((dev_info.tx_offload_capa & DEV_TX_OFFLOAD_QINQ_INSERT) == 0) {
1137 printf("Error: qinq insert not supported by port %d\n",
1138@@ -3006,7 +3020,12 @@ tx_qinq_set(portid_t port_id, uint16_t vlan_id, uint16_t vlan_id_outer)
1139 }
1140
1141 tx_vlan_reset(port_id);
1142+<<<<<<< app/test-pmd/config.c
1143 ports[port_id].dev_conf.txmode.offloads |= DEV_TX_OFFLOAD_QINQ_INSERT;
1144+=======
1145+ ports[port_id].dev_conf.txmode.offloads |= (DEV_TX_OFFLOAD_VLAN_INSERT |
1146+ DEV_TX_OFFLOAD_QINQ_INSERT);
1147+>>>>>>> app/test-pmd/config.c
1148 ports[port_id].tx_vlan_id = vlan_id;
1149 ports[port_id].tx_vlan_id_outer = vlan_id_outer;
1150 }
1151diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
1152index ffeee20..9cb9b30 100644
1153--- a/app/test-pmd/csumonly.c
1154+++ b/app/test-pmd/csumonly.c
1155@@ -575,7 +575,11 @@ mbuf_copy_split(const struct rte_mbuf *ms, struct rte_mbuf *md[],
1156
1157 /*
1158 * Allocate a new mbuf with up to tx_pkt_nb_segs segments.
1159+<<<<<<< app/test-pmd/csumonly.c
1160 * Copy packet contents and offload information into then new segmented mbuf.
1161+=======
1162+ * Copy packet contents and offload information into the new segmented mbuf.
1163+>>>>>>> app/test-pmd/csumonly.c
1164 */
1165 static struct rte_mbuf *
1166 pkt_copy_split(const struct rte_mbuf *pkt)
1167diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
1168index 4c75587..f42f1da 100644
1169--- a/app/test-pmd/testpmd.c
1170+++ b/app/test-pmd/testpmd.c
1171@@ -188,6 +188,11 @@ struct fwd_engine * fwd_engines[] = {
1172 NULL,
1173 };
1174
1175+<<<<<<< app/test-pmd/testpmd.c
1176+=======
1177+struct rte_mempool *mempools[RTE_MAX_NUMA_NODES];
1178+
1179+>>>>>>> app/test-pmd/testpmd.c
1180 struct fwd_config cur_fwd_config;
1181 struct fwd_engine *cur_fwd_eng = &io_fwd_engine; /**< IO mode by default. */
1182 uint32_t retry_enabled;
1183@@ -844,7 +849,11 @@ setup_extmem(uint32_t nb_mbufs, uint32_t mbuf_sz, bool huge)
1184 /*
1185 * Configuration initialisation done once at init time.
1186 */
1187+<<<<<<< app/test-pmd/testpmd.c
1188 static void
1189+=======
1190+static struct rte_mempool *
1191+>>>>>>> app/test-pmd/testpmd.c
1192 mbuf_pool_create(uint16_t mbuf_seg_size, unsigned nb_mbuf,
1193 unsigned int socket_id)
1194 {
1195@@ -922,6 +931,10 @@ err:
1196 } else if (verbose_level > 0) {
1197 rte_mempool_dump(stdout, rte_mp);
1198 }
1199+<<<<<<< app/test-pmd/testpmd.c
1200+=======
1201+ return rte_mp;
1202+>>>>>>> app/test-pmd/testpmd.c
1203 }
1204
1205 /*
1206@@ -1139,6 +1152,7 @@ init_config(void)
1207 uint8_t i;
1208
1209 for (i = 0; i < num_sockets; i++)
1210+<<<<<<< app/test-pmd/testpmd.c
1211 mbuf_pool_create(mbuf_data_size, nb_mbuf_per_pool,
1212 socket_ids[i]);
1213 } else {
1214@@ -1147,6 +1161,20 @@ init_config(void)
1215 else
1216 mbuf_pool_create(mbuf_data_size, nb_mbuf_per_pool,
1217 socket_num);
1218+=======
1219+ mempools[i] = mbuf_pool_create(mbuf_data_size,
1220+ nb_mbuf_per_pool,
1221+ socket_ids[i]);
1222+ } else {
1223+ if (socket_num == UMA_NO_CONFIG)
1224+ mempools[0] = mbuf_pool_create(mbuf_data_size,
1225+ nb_mbuf_per_pool, 0);
1226+ else
1227+ mempools[socket_num] = mbuf_pool_create
1228+ (mbuf_data_size,
1229+ nb_mbuf_per_pool,
1230+ socket_num);
1231+>>>>>>> app/test-pmd/testpmd.c
1232 }
1233
1234 init_port_config();
1235@@ -1388,7 +1416,11 @@ fwd_port_stats_display(portid_t port_id, struct rte_eth_stats *stats)
1236 printf(" RX-packets: %-14"PRIu64" RX-dropped: %-14"PRIu64"RX-total: "
1237 "%-"PRIu64"\n",
1238 stats->ipackets, stats->imissed,
1239+<<<<<<< app/test-pmd/testpmd.c
1240 (uint64_t) (stats->ipackets + stats->imissed));
1241+=======
1242+ stats->ipackets + stats->imissed);
1243+>>>>>>> app/test-pmd/testpmd.c
1244
1245 if (cur_fwd_eng == &csum_fwd_engine)
1246 printf(" Bad-ipcsum: %-14"PRIu64" Bad-l4csum: %-14"PRIu64"Bad-outer-l4csum: %-14"PRIu64"\n",
1247@@ -1402,13 +1434,21 @@ fwd_port_stats_display(portid_t port_id, struct rte_eth_stats *stats)
1248 printf(" TX-packets: %-14"PRIu64" TX-dropped: %-14"PRIu64"TX-total: "
1249 "%-"PRIu64"\n",
1250 stats->opackets, port->tx_dropped,
1251+<<<<<<< app/test-pmd/testpmd.c
1252 (uint64_t) (stats->opackets + port->tx_dropped));
1253+=======
1254+ stats->opackets + port->tx_dropped);
1255+>>>>>>> app/test-pmd/testpmd.c
1256 }
1257 else {
1258 printf(" RX-packets: %14"PRIu64" RX-dropped:%14"PRIu64" RX-total:"
1259 "%14"PRIu64"\n",
1260 stats->ipackets, stats->imissed,
1261+<<<<<<< app/test-pmd/testpmd.c
1262 (uint64_t) (stats->ipackets + stats->imissed));
1263+=======
1264+ stats->ipackets + stats->imissed);
1265+>>>>>>> app/test-pmd/testpmd.c
1266
1267 if (cur_fwd_eng == &csum_fwd_engine)
1268 printf(" Bad-ipcsum:%14"PRIu64" Bad-l4csum:%14"PRIu64" Bad-outer-l4csum: %-14"PRIu64"\n",
1269@@ -1423,7 +1463,11 @@ fwd_port_stats_display(portid_t port_id, struct rte_eth_stats *stats)
1270 printf(" TX-packets: %14"PRIu64" TX-dropped:%14"PRIu64" TX-total:"
1271 "%14"PRIu64"\n",
1272 stats->opackets, port->tx_dropped,
1273+<<<<<<< app/test-pmd/testpmd.c
1274 (uint64_t) (stats->opackets + port->tx_dropped));
1275+=======
1276+ stats->opackets + port->tx_dropped);
1277+>>>>>>> app/test-pmd/testpmd.c
1278 }
1279
1280 #ifdef RTE_TEST_PMD_RECORD_BURST_STATS
1281@@ -1471,15 +1515,30 @@ fwd_stream_stats_display(streamid_t stream_id)
1282 "TX Port=%2d/Queue=%2d %s\n",
1283 fwd_top_stats_border, fs->rx_port, fs->rx_queue,
1284 fs->tx_port, fs->tx_queue, fwd_top_stats_border);
1285+<<<<<<< app/test-pmd/testpmd.c
1286 printf(" RX-packets: %-14u TX-packets: %-14u TX-dropped: %-14u",
1287+=======
1288+ printf(" RX-packets: %-14"PRIu64" TX-packets: %-14"PRIu64
1289+ " TX-dropped: %-14"PRIu64,
1290+>>>>>>> app/test-pmd/testpmd.c
1291 fs->rx_packets, fs->tx_packets, fs->fwd_dropped);
1292
1293 /* if checksum mode */
1294 if (cur_fwd_eng == &csum_fwd_engine) {
1295+<<<<<<< app/test-pmd/testpmd.c
1296 printf(" RX- bad IP checksum: %-14u Rx- bad L4 checksum: "
1297 "%-14u Rx- bad outer L4 checksum: %-14u\n",
1298 fs->rx_bad_ip_csum, fs->rx_bad_l4_csum,
1299 fs->rx_bad_outer_l4_csum);
1300+=======
1301+ printf(" RX- bad IP checksum: %-14"PRIu64
1302+ " Rx- bad L4 checksum: %-14"PRIu64
1303+ " Rx- bad outer L4 checksum: %-14"PRIu64"\n",
1304+ fs->rx_bad_ip_csum, fs->rx_bad_l4_csum,
1305+ fs->rx_bad_outer_l4_csum);
1306+ } else {
1307+ printf("\n");
1308+>>>>>>> app/test-pmd/testpmd.c
1309 }
1310
1311 #ifdef RTE_TEST_PMD_RECORD_BURST_STATS
1312@@ -1755,9 +1814,12 @@ stop_packet_forwarding(void)
1313 uint64_t total_rx_dropped;
1314 uint64_t total_tx_dropped;
1315 uint64_t total_rx_nombuf;
1316+<<<<<<< app/test-pmd/testpmd.c
1317 uint64_t tx_dropped;
1318 uint64_t rx_bad_ip_csum;
1319 uint64_t rx_bad_l4_csum;
1320+=======
1321+>>>>>>> app/test-pmd/testpmd.c
1322 #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES
1323 uint64_t fwd_cycles;
1324 #endif
1325@@ -1784,6 +1846,7 @@ stop_packet_forwarding(void)
1326 fwd_cycles = 0;
1327 #endif
1328 for (sm_id = 0; sm_id < cur_fwd_config.nb_fwd_streams; sm_id++) {
1329+<<<<<<< app/test-pmd/testpmd.c
1330 if (cur_fwd_config.nb_fwd_streams >
1331 cur_fwd_config.nb_fwd_ports) {
1332 fwd_stream_stats_display(sm_id);
1333@@ -1816,6 +1879,24 @@ stop_packet_forwarding(void)
1334
1335 ports[fwd_streams[sm_id]->rx_port].rx_bad_outer_l4_csum +=
1336 fwd_streams[sm_id]->rx_bad_outer_l4_csum;
1337+=======
1338+ struct fwd_stream *fs = fwd_streams[sm_id];
1339+
1340+ if (cur_fwd_config.nb_fwd_streams >
1341+ cur_fwd_config.nb_fwd_ports) {
1342+ fwd_stream_stats_display(sm_id);
1343+ ports[fs->tx_port].tx_stream = NULL;
1344+ ports[fs->rx_port].rx_stream = NULL;
1345+ } else {
1346+ ports[fs->tx_port].tx_stream = fs;
1347+ ports[fs->rx_port].rx_stream = fs;
1348+ }
1349+ ports[fs->tx_port].tx_dropped += fs->fwd_dropped;
1350+ ports[fs->rx_port].rx_bad_ip_csum += fs->rx_bad_ip_csum;
1351+ ports[fs->rx_port].rx_bad_l4_csum += fs->rx_bad_l4_csum;
1352+ ports[fs->rx_port].rx_bad_outer_l4_csum +=
1353+ fs->rx_bad_outer_l4_csum;
1354+>>>>>>> app/test-pmd/testpmd.c
1355
1356 #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES
1357 fwd_cycles = (uint64_t) (fwd_cycles +
1358@@ -2399,6 +2480,10 @@ pmd_test_exit(void)
1359 struct rte_device *device;
1360 portid_t pt_id;
1361 int ret;
1362+<<<<<<< app/test-pmd/testpmd.c
1363+=======
1364+ int i;
1365+>>>>>>> app/test-pmd/testpmd.c
1366
1367 if (test_done == 0)
1368 stop_packet_forwarding();
1369@@ -2406,9 +2491,19 @@ pmd_test_exit(void)
1370 if (ports != NULL) {
1371 no_link_check = 1;
1372 RTE_ETH_FOREACH_DEV(pt_id) {
1373+<<<<<<< app/test-pmd/testpmd.c
1374 printf("\nShutting down port %d...\n", pt_id);
1375 fflush(stdout);
1376 stop_port(pt_id);
1377+=======
1378+ printf("\nStopping port %d...\n", pt_id);
1379+ fflush(stdout);
1380+ stop_port(pt_id);
1381+ }
1382+ RTE_ETH_FOREACH_DEV(pt_id) {
1383+ printf("\nShutting down port %d...\n", pt_id);
1384+ fflush(stdout);
1385+>>>>>>> app/test-pmd/testpmd.c
1386 close_port(pt_id);
1387
1388 /*
1389@@ -2448,6 +2543,13 @@ pmd_test_exit(void)
1390 return;
1391 }
1392 }
1393+<<<<<<< app/test-pmd/testpmd.c
1394+=======
1395+ for (i = 0 ; i < RTE_MAX_NUMA_NODES ; i++) {
1396+ if (mempools[i])
1397+ rte_mempool_free(mempools[i]);
1398+ }
1399+>>>>>>> app/test-pmd/testpmd.c
1400
1401 printf("\nBye...\n");
1402 }
1403@@ -2961,8 +3063,14 @@ init_port_dcb_config(portid_t pid,
1404 port_conf.rxmode.offloads |= DEV_RX_OFFLOAD_VLAN_FILTER;
1405
1406 /* re-configure the device . */
1407+<<<<<<< app/test-pmd/testpmd.c
1408 rte_eth_dev_configure(pid, nb_rxq, nb_rxq, &port_conf);
1409
1410+=======
1411+ retval = rte_eth_dev_configure(pid, nb_rxq, nb_rxq, &port_conf);
1412+ if (retval < 0)
1413+ return retval;
1414+>>>>>>> app/test-pmd/testpmd.c
1415 rte_eth_dev_info_get(pid, &rte_port->dev_info);
1416
1417 /* If dev_info.vmdq_pool_base is greater than 0,
1418@@ -3054,6 +3162,11 @@ print_stats(void)
1419 printf("\nPort statistics ====================================");
1420 for (i = 0; i < cur_fwd_config.nb_fwd_ports; i++)
1421 nic_stats_display(fwd_ports_ids[i]);
1422+<<<<<<< app/test-pmd/testpmd.c
1423+=======
1424+
1425+ fflush(stdout);
1426+>>>>>>> app/test-pmd/testpmd.c
1427 }
1428
1429 static void
1430diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
1431index 3ff11e6..7478ad1 100644
1432--- a/app/test-pmd/testpmd.h
1433+++ b/app/test-pmd/testpmd.h
1434@@ -119,12 +119,21 @@ struct fwd_stream {
1435 unsigned int retry_enabled;
1436
1437 /* "read-write" results */
1438+<<<<<<< app/test-pmd/testpmd.h
1439 unsigned int rx_packets; /**< received packets */
1440 unsigned int tx_packets; /**< received packets transmitted */
1441 unsigned int fwd_dropped; /**< received packets not forwarded */
1442 unsigned int rx_bad_ip_csum ; /**< received packets has bad ip checksum */
1443 unsigned int rx_bad_l4_csum ; /**< received packets has bad l4 checksum */
1444 unsigned int rx_bad_outer_l4_csum;
1445+=======
1446+ uint64_t rx_packets; /**< received packets */
1447+ uint64_t tx_packets; /**< received packets transmitted */
1448+ uint64_t fwd_dropped; /**< received packets not forwarded */
1449+ uint64_t rx_bad_ip_csum ; /**< received packets has bad ip checksum */
1450+ uint64_t rx_bad_l4_csum ; /**< received packets has bad l4 checksum */
1451+ uint64_t rx_bad_outer_l4_csum;
1452+>>>>>>> app/test-pmd/testpmd.h
1453 /**< received packets has bad outer l4 checksum */
1454 unsigned int gro_times; /**< GRO operation times */
1455 #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES
1456@@ -173,7 +182,10 @@ struct rte_port {
1457 uint16_t tunnel_tso_segsz; /**< Segmentation offload MSS for tunneled pkts. */
1458 uint16_t tx_vlan_id;/**< The tag ID */
1459 uint16_t tx_vlan_id_outer;/**< The outer tag ID */
1460+<<<<<<< app/test-pmd/testpmd.h
1461 void *fwd_ctx; /**< Forwarding mode context */
1462+=======
1463+>>>>>>> app/test-pmd/testpmd.h
1464 uint64_t rx_bad_ip_csum; /**< rx pkts with bad ip checksum */
1465 uint64_t rx_bad_l4_csum; /**< rx pkts with bad l4 checksum */
1466 uint64_t rx_bad_outer_l4_csum;
1467diff --git a/buildtools/symlink-drivers-solibs.sh b/buildtools/symlink-drivers-solibs.sh
1468index 9826c6a..ad327c8 100644
1469--- a/buildtools/symlink-drivers-solibs.sh
1470+++ b/buildtools/symlink-drivers-solibs.sh
1471@@ -7,6 +7,13 @@
1472 # others, e.g. PCI device PMDs depending on the PCI bus driver.
1473
1474 # parameters to script are paths relative to install prefix:
1475+<<<<<<< buildtools/symlink-drivers-solibs.sh
1476 # 1. directory containing driver files e.g. lib64/dpdk/drivers
1477 # 2. directory for installed regular libs e.g. lib64
1478 ln -rsf ${DESTDIR}/${MESON_INSTALL_PREFIX}/$1/* ${DESTDIR}/${MESON_INSTALL_PREFIX}/$2
1479+=======
1480+# 1. directory for installed regular libs e.g. lib64
1481+# 2. subdirectory of libdir where the pmds are
1482+
1483+cd ${MESON_INSTALL_DESTDIR_PREFIX}/$1 && ln -sfv $2/librte_*.so* .
1484+>>>>>>> buildtools/symlink-drivers-solibs.sh
1485diff --git a/config/arm/meson.build b/config/arm/meson.build
1486index 3f91725..5f54667 100644
1487--- a/config/arm/meson.build
1488+++ b/config/arm/meson.build
1489@@ -6,6 +6,10 @@
1490 march_opt = '-march=@0@'.format(machine)
1491
1492 arm_force_native_march = false
1493+<<<<<<< config/arm/meson.build
1494+=======
1495+arm_force_default_march = (machine == 'default')
1496+>>>>>>> config/arm/meson.build
1497
1498 machine_args_generic = [
1499 ['default', ['-march=armv8-a+crc+crypto']],
1500@@ -47,6 +51,10 @@ flags_common_default = [
1501 flags_generic = [
1502 ['RTE_MACHINE', '"armv8a"'],
1503 ['RTE_MAX_LCORE', 256],
1504+<<<<<<< config/arm/meson.build
1505+=======
1506+ ['RTE_USE_C11_MEM_MODEL', true],
1507+>>>>>>> config/arm/meson.build
1508 ['RTE_CACHE_LINE_SIZE', 128]]
1509 flags_cavium = [
1510 ['RTE_MACHINE', '"thunderx"'],
1511@@ -57,11 +65,19 @@ flags_cavium = [
1512 ['RTE_USE_C11_MEM_MODEL', false]]
1513 flags_dpaa = [
1514 ['RTE_MACHINE', '"dpaa"'],
1515+<<<<<<< config/arm/meson.build
1516+=======
1517+ ['RTE_USE_C11_MEM_MODEL', true],
1518+>>>>>>> config/arm/meson.build
1519 ['RTE_CACHE_LINE_SIZE', 64],
1520 ['RTE_MAX_NUMA_NODES', 1],
1521 ['RTE_MAX_LCORE', 16]]
1522 flags_dpaa2 = [
1523 ['RTE_MACHINE', '"dpaa2"'],
1524+<<<<<<< config/arm/meson.build
1525+=======
1526+ ['RTE_USE_C11_MEM_MODEL', true],
1527+>>>>>>> config/arm/meson.build
1528 ['RTE_CACHE_LINE_SIZE', 64],
1529 ['RTE_MAX_NUMA_NODES', 1],
1530 ['RTE_MAX_LCORE', 16],
1531@@ -102,7 +118,14 @@ else
1532 cmd_generic = ['generic', '', '', 'default', '']
1533 cmd_output = cmd_generic # Set generic by default
1534 machine_args = [] # Clear previous machine args
1535+<<<<<<< config/arm/meson.build
1536 if not meson.is_cross_build()
1537+=======
1538+ if arm_force_default_march and not meson.is_cross_build()
1539+ machine = impl_generic
1540+ impl_pn = 'default'
1541+ elif not meson.is_cross_build()
1542+>>>>>>> config/arm/meson.build
1543 # The script returns ['Implementer', 'Variant', 'Architecture',
1544 # 'Primary Part number', 'Revision']
1545 detect_vendor = find_program(join_paths(
1546@@ -112,8 +135,13 @@ else
1547 cmd_output = cmd.stdout().to_lower().strip().split(' ')
1548 endif
1549 # Set to generic if variable is not found
1550+<<<<<<< config/arm/meson.build
1551 machine = get_variable('impl_' + cmd_output[0], 'generic')
1552 if machine == 'generic'
1553+=======
1554+ machine = get_variable('impl_' + cmd_output[0], ['generic'])
1555+ if machine[0] == 'generic'
1556+>>>>>>> config/arm/meson.build
1557 machine = impl_generic
1558 cmd_output = cmd_generic
1559 endif
1560diff --git a/config/meson.build b/config/meson.build
1561index db32499..c785912 100644
1562--- a/config/meson.build
1563+++ b/config/meson.build
1564@@ -1,6 +1,16 @@
1565 # SPDX-License-Identifier: BSD-3-Clause
1566 # Copyright(c) 2017 Intel Corporation
1567
1568+<<<<<<< config/meson.build
1569+=======
1570+# driver .so files often depend upon the bus drivers for their connect bus,
1571+# e.g. ixgbe depends on librte_bus_pci. This means that the bus drivers need
1572+# to be in the library path, so symlink the drivers from the main lib directory.
1573+meson.add_install_script('../buildtools/symlink-drivers-solibs.sh',
1574+ get_option('libdir'),
1575+ pmd_subdir_opt)
1576+
1577+>>>>>>> config/meson.build
1578 # set the machine type and cflags for it
1579 if meson.is_cross_build()
1580 machine = host_machine.cpu()
1581diff --git a/config/x86/meson.build b/config/x86/meson.build
1582index 33efb5e..10d0380 100644
1583--- a/config/x86/meson.build
1584+++ b/config/x86/meson.build
1585@@ -1,14 +1,33 @@
1586 # SPDX-License-Identifier: BSD-3-Clause
1587 # Copyright(c) 2017 Intel Corporation
1588
1589+<<<<<<< config/x86/meson.build
1590 # for checking defines we need to use the correct compiler flags
1591 march_opt = '-march=@0@'.format(machine)
1592+=======
1593+# get binutils version for the workaround of Bug 97
1594+ldver = run_command('ld', '-v').stdout().strip()
1595+if ldver.contains('2.30')
1596+ if cc.has_argument('-mno-avx512f')
1597+ machine_args += '-mno-avx512f'
1598+ message('Binutils 2.30 detected, disabling AVX512 support as workaround for bug #97')
1599+ endif
1600+ if ldver.contains('2.31') and cc.has_argument('-mno-avx512f')
1601+ machine_args += '-mno-avx512f'
1602+ message('Binutils 2.31 detected, disabling AVX512 support as workaround for bug #249')
1603+ endif
1604+endif
1605+>>>>>>> config/x86/meson.build
1606
1607 # we require SSE4.2 for DPDK
1608 sse_errormsg = '''SSE4.2 instruction set is required for DPDK.
1609 Please set the machine type to "nehalem" or "corei7" or higher value'''
1610
1611+<<<<<<< config/x86/meson.build
1612 if cc.get_define('__SSE4_2__', args: march_opt) == ''
1613+=======
1614+if cc.get_define('__SSE4_2__', args: machine_args) == ''
1615+>>>>>>> config/x86/meson.build
1616 error(sse_errormsg)
1617 endif
1618
1619@@ -28,6 +47,7 @@ else
1620 dpdk_conf.set('RTE_ARCH', 'i686')
1621 endif
1622
1623+<<<<<<< config/x86/meson.build
1624 if cc.get_define('__AES__', args: march_opt) != ''
1625 dpdk_conf.set('RTE_MACHINE_CPUFLAG_AES', 1)
1626 compile_time_cpuflags += ['RTE_CPUFLAG_AES']
1627@@ -45,6 +65,25 @@ if cc.get_define('__AVX2__', args: march_opt) != ''
1628 compile_time_cpuflags += ['RTE_CPUFLAG_AVX2']
1629 endif
1630 if cc.get_define('__AVX512F__', args: march_opt) != ''
1631+=======
1632+if cc.get_define('__AES__', args: machine_args) != ''
1633+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_AES', 1)
1634+ compile_time_cpuflags += ['RTE_CPUFLAG_AES']
1635+endif
1636+if cc.get_define('__PCLMUL__', args: machine_args) != ''
1637+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_PCLMULQDQ', 1)
1638+ compile_time_cpuflags += ['RTE_CPUFLAG_PCLMULQDQ']
1639+endif
1640+if cc.get_define('__AVX__', args: machine_args) != ''
1641+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX', 1)
1642+ compile_time_cpuflags += ['RTE_CPUFLAG_AVX']
1643+endif
1644+if cc.get_define('__AVX2__', args: machine_args) != ''
1645+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX2', 1)
1646+ compile_time_cpuflags += ['RTE_CPUFLAG_AVX2']
1647+endif
1648+if cc.get_define('__AVX512F__', args: machine_args) != ''
1649+>>>>>>> config/x86/meson.build
1650 dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX512F', 1)
1651 compile_time_cpuflags += ['RTE_CPUFLAG_AVX512F']
1652 endif
1653diff --git a/debian/.gitignore b/debian/.gitignore
1654new file mode 100644
1655index 0000000..0bd9950
1656--- /dev/null
1657+++ b/debian/.gitignore
1658@@ -0,0 +1,20 @@
1659+*.debhelper.log
1660+*.substvars
1661+*.postinst.debhelper
1662+*.postrm.debhelper
1663+*.prerm.debhelper
1664+*.dkms.debhelper
1665+build/
1666+control.modules
1667+debhelper-build-stamp
1668+dpdk-dev/
1669+dpdk-doc/
1670+dpdk-igb-uio-dkms/
1671+dpdk-modules-*/
1672+dpdk-rte-kni-dkms/
1673+dpdk/
1674+files
1675+libdpdk-dev/
1676+librte*/
1677+libethdev*/
1678+VERSION
1679diff --git a/debian/.gitlab-ci.yml b/debian/.gitlab-ci.yml
1680new file mode 100644
1681index 0000000..33c3a64
1682--- /dev/null
1683+++ b/debian/.gitlab-ci.yml
1684@@ -0,0 +1,4 @@
1685+---
1686+include:
1687+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
1688+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
1689diff --git a/debian/README.source b/debian/README.source
1690index a21f5ee..1d22354 100644
1691--- a/debian/README.source
1692+++ b/debian/README.source
1693@@ -40,3 +40,33 @@ fi
1694
1695 Open a new terminal or souce ~/.bashrc, and then you will be able to use
1696 dquilt.
1697+<<<<<<< debian/README.source
1698+=======
1699+
1700+***************
1701+
1702+After using Gerrit on FD.io (thanks!) for a while we converged on using salsa
1703+The main page is at https://salsa.debian.org/debian/dpdk
1704+
1705+Branches that we use:
1706+- sid - main development branch, uploads to unstable from here
1707+- experimental - development if frozen, merged to sid on a new release
1708+- pristine-tar - artifact of gbp import to recreate tarballs
1709+- upstream - artifact of gbp import reflecting new versions
1710+ upstream following mainline "master" releases
1711+ e.g. 18.11 -> 19.02 -> 19.05 -> ...
1712+- upstream-XX.YY-stable - to keep updates linear stable releases like 18.11.2
1713+ will go here, branched from XX.YY
1714+ e.g. 17.11 -> 18.11 -> 19.11 -> ...
1715+- stretch* - track updates/backports to stable Debian releases
1716+
1717+The majority of changes is co-maintained in Salsa directly.
1718+Uploads to existing Ubuntu releases are maintained in git Ubuntu [1]
1719+at https://git.launchpad.net/ubuntu/+source/dpdk
1720+
1721+There are branches per Ubuntu release which are forked off the Debian branch
1722+at the time. SRU [2] uploads follow the usual process based on these branches.
1723+
1724+[1]: https://ubuntu.com/blog/developing-ubuntu-using-git
1725+[2]: https://wiki.ubuntu.com/StableReleaseUpdates
1726+>>>>>>> debian/README.source
1727diff --git a/debian/changelog b/debian/changelog
1728index f146fc1..88ed729 100644
1729--- a/debian/changelog
1730+++ b/debian/changelog
1731@@ -1,3 +1,66 @@
1732+<<<<<<< debian/changelog
1733+=======
1734+dpdk (18.11.2-1ubuntu0.19.04.1) disco; urgency=medium
1735+
1736+ * Make DPDK LTS release available in Disco (LP: #1784816)
1737+ - includes a fix for mlx rdma-core dependencies (LP: #1820957)
1738+
1739+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Fri, 12 Jul 2019 14:35:59 +0200
1740+
1741+dpdk (18.11.2-1) experimental; urgency=medium
1742+
1743+ [ Christian Ehrhardt ]
1744+ * Merge stable update to 18.11.2; For a list of changes see
1745+ http://doc.dpdk.org/guides-18.11/rel_notes/release_18_11.html#id1
1746+ - refresh 0004-build-bump-minimum-Meson-version-to-0.47.1.patch for 18.11.2
1747+ - drop changes upstream in 18.11.2
1748+ 0002-build-use-generic-march-on-arm64-when-using-default.patch
1749+ lp-1827102-kni-fix-build-with-Linux-5.1.patch
1750+
1751+ [ Santiago Ruano Rincón ]
1752+ * debian/rules: clean doc files
1753+
1754+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Thu, 04 Jul 2019 11:05:14 +0200
1755+
1756+dpdk (18.11.1-3) experimental; urgency=medium
1757+
1758+ * d/control: add dependencies to libdpdk-dev: libelf-dev and libjansson-dev
1759+ to avoid pkg-config issues
1760+ * d/control: drop unused build dependency to libcap-dev
1761+
1762+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 08 May 2019 09:25:26 +0200
1763+
1764+dpdk (18.11.1-2) experimental; urgency=medium
1765+
1766+ [ Christian Ehrhardt ]
1767+ * d/control: drop shlibs:Depends from dpdk as it has no binaries anymore
1768+ * d/p/lp-1827102-kni-fix-build-with-Linux-5.1.patch fix kni DKMS build with
1769+ Linux 5.1 kernels (LP: #1827102)
1770+
1771+ [ Luca Boccassi ]
1772+ * Bump Standards-Version to 4.3.0, no changes.
1773+
1774+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Fri, 03 May 2019 15:08:25 +0200
1775+
1776+dpdk (18.11.1-1) experimental; urgency=medium
1777+
1778+ [ Christian Ehrhardt ]
1779+ * Merge stable update to 18.11.1; For a list of changes see
1780+ https://doc.dpdk.org/guides-18.11/rel_notes/release_18_11.html
1781+ - refresh 0004-build-bump-minimum-Meson-version-to-0.47.1.patch for 18.11.1
1782+ - drop changes upstream in 18.11.1
1783+ 0001-doc-fix-garbage-text-in-generated-HTML-guides.patch
1784+ 0003-build-mention-march-in-pkg-config-description.patch
1785+ 0001-kni-fix-build-for-dev_open-in-Linux-5.0.patch
1786+ 0002-kni-fix-build-for-igb_ndo_bridge_setlink-in-Linux-5..patch
1787+ * d/control: fix usability issue with mlx PMDs which might need rdma-core
1788+ to be installed. In most cases users will want this, to be able to
1789+ drop rdma-core if unwanted in some cases this is only a recommends added
1790+ to librte-pmd-mlx4-18.11 and librte-pmd-mlx5-18.11 (Closes: #925141)
1791+
1792+ -- Luca Boccassi <bluca@debian.org> Tue, 16 Apr 2019 11:14:13 +0100
1793+
1794+>>>>>>> debian/changelog
1795 dpdk (18.11-6) unstable; urgency=medium
1796
1797 [ Luca Boccassi ]
1798diff --git a/debian/control b/debian/control
1799index 833bf48..0628588 100644
1800--- a/debian/control
1801+++ b/debian/control
1802@@ -1,6 +1,11 @@
1803 Source: dpdk
1804 Priority: optional
1805+<<<<<<< debian/control
1806 Maintainer: Debian DPDK Maintainers <pkg-dpdk-devel@lists.alioth.debian.org>
1807+=======
1808+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
1809+XSBC-Original-Maintainer: Debian DPDK Maintainers <pkg-dpdk-devel@lists.alioth.debian.org>
1810+>>>>>>> debian/control
1811 Uploaders: Luca Boccassi <bluca@debian.org>,
1812 Christian Ehrhardt <christian.ehrhardt@canonical.com>,
1813 Santiago Ruano Rincón <santiagorr@riseup.net>,
1814@@ -11,7 +16,10 @@ Build-Depends: debhelper (>= 10.3~),
1815 graphviz <!nodoc>,
1816 inkscape <!nodoc>,
1817 libbsd-dev,
1818+<<<<<<< debian/control
1819 libcap-dev,
1820+=======
1821+>>>>>>> debian/control
1822 libelf-dev,
1823 libibverbs-dev (>= 16~),
1824 libipsec-mb-dev [amd64],
1825@@ -28,12 +36,21 @@ Build-Depends: debhelper (>= 10.3~),
1826 texlive-fonts-recommended <!nodoc>,
1827 texlive-latex-extra <!nodoc>,
1828 zlib1g-dev,
1829+<<<<<<< debian/control
1830 Standards-Version: 4.2.1
1831 Rules-Requires-Root: no
1832 Section: libs
1833 Homepage: https://www.dpdk.org
1834 Vcs-Git: https://gerrit.fd.io/r/deb_dpdk
1835 Vcs-Browser: https://gerrit.fd.io/r/gitweb?p=deb_dpdk.git
1836+=======
1837+Standards-Version: 4.3.0
1838+Rules-Requires-Root: no
1839+Section: libs
1840+Homepage: https://www.dpdk.org
1841+Vcs-Git: https://salsa.debian.org/debian/dpdk.git
1842+Vcs-Browser: https://salsa.debian.org/debian/dpdk
1843+>>>>>>> debian/control
1844
1845 Package: dpdk
1846 Section: admin
1847@@ -43,7 +60,10 @@ Depends: hwdata,
1848 pciutils,
1849 ${misc:Depends},
1850 ${python3:Depends},
1851+<<<<<<< debian/control
1852 ${shlibs:Depends},
1853+=======
1854+>>>>>>> debian/control
1855 Recommends: librte-mempool18.11,
1856 librte-mempool-ring18.11,
1857 librte-pmd-af-packet18.11,
1858@@ -145,6 +165,11 @@ Pre-Depends: ${misc:Pre-Depends},
1859 Depends: libbsd-dev,
1860 libibverbs-dev,
1861 libipsec-mb-dev [amd64],
1862+<<<<<<< debian/control
1863+=======
1864+ libelf-dev,
1865+ libjansson-dev,
1866+>>>>>>> debian/control
1867 libmnl-dev,
1868 libnuma-dev,
1869 libpcap-dev,
1870@@ -1745,6 +1770,10 @@ Homepage: https://dpdk.org/doc/guides/nics/mlx4.html
1871 Pre-Depends: ${misc:Pre-Depends},
1872 Depends: ${misc:Depends},
1873 ${shlibs:Depends},
1874+<<<<<<< debian/control
1875+=======
1876+ rdma-core,
1877+>>>>>>> debian/control
1878 Conflicts: libdpdk0,
1879 Description: Data Plane Development Kit (librte-pmd-mlx4 runtime library)
1880 DPDK is a set of libraries for fast packet processing. Applications run
1881@@ -1759,6 +1788,10 @@ Homepage: https://dpdk.org/doc/guides/nics/mlx5.html
1882 Pre-Depends: ${misc:Pre-Depends},
1883 Depends: ${misc:Depends},
1884 ${shlibs:Depends},
1885+<<<<<<< debian/control
1886+=======
1887+ rdma-core,
1888+>>>>>>> debian/control
1889 Conflicts: libdpdk0,
1890 Description: Data Plane Development Kit (librte-pmd-mlx5 runtime library)
1891 DPDK is a set of libraries for fast packet processing. Applications run
1892diff --git a/debian/gbp.conf b/debian/gbp.conf
1893new file mode 100644
1894index 0000000..d8a5db4
1895--- /dev/null
1896+++ b/debian/gbp.conf
1897@@ -0,0 +1,7 @@
1898+[DEFAULT]
1899+debian-branch = experimental
1900+upstream-branch = upstream-18.11-stable
1901+pristine-tar = True
1902+
1903+[dch]
1904+customizations=/usr/share/doc/git-buildpackage/examples/wrap_cl.py
1905diff --git a/debian/patches/0004-build-bump-minimum-Meson-version-to-0.47.1.patch b/debian/patches/0004-build-bump-minimum-Meson-version-to-0.47.1.patch
1906index 89cc6c4..25262c0 100644
1907--- a/debian/patches/0004-build-bump-minimum-Meson-version-to-0.47.1.patch
1908+++ b/debian/patches/0004-build-bump-minimum-Meson-version-to-0.47.1.patch
1909@@ -35,7 +35,11 @@ Origin: https://patches.dpdk.org/patch/49995/
1910 --- a/meson.build
1911 +++ b/meson.build
1912 @@ -5,7 +5,7 @@ project('DPDK', 'C',
1913+<<<<<<< debian/patches/0004-build-bump-minimum-Meson-version-to-0.47.1.patch
1914 version: '18.11.0',
1915+=======
1916+ version: '18.11.2',
1917+>>>>>>> debian/patches/0004-build-bump-minimum-Meson-version-to-0.47.1.patch
1918 license: 'BSD',
1919 default_options: ['buildtype=release', 'default_library=static'],
1920 - meson_version: '>= 0.41'
1921diff --git a/debian/patches/series b/debian/patches/series
1922index 38b80db..ac6c141 100644
1923--- a/debian/patches/series
1924+++ b/debian/patches/series
1925@@ -1,9 +1,15 @@
1926+<<<<<<< debian/patches/series
1927 0001-doc-fix-garbage-text-in-generated-HTML-guides.patch
1928 0002-build-use-generic-march-on-arm64-when-using-default.patch
1929 0003-build-mention-march-in-pkg-config-description.patch
1930+=======
1931+>>>>>>> debian/patches/series
1932 0004-build-bump-minimum-Meson-version-to-0.47.1.patch
1933 0005-build-use-dependency-instead-of-find_library.patch
1934 0006-build-reorder-libraries-and-build-eal-before-cmdline.patch
1935 0007-build-use-dependency-for-libbsd-instead-of-manual-ap.patch
1936+<<<<<<< debian/patches/series
1937 0001-kni-fix-build-for-dev_open-in-Linux-5.0.patch
1938 0002-kni-fix-build-for-igb_ndo_bridge_setlink-in-Linux-5..patch
1939+=======
1940+>>>>>>> debian/patches/series
1941diff --git a/debian/rules b/debian/rules
1942index 2d69b82..3a266cf 100755
1943--- a/debian/rules
1944+++ b/debian/rules
1945@@ -107,6 +107,16 @@ override_dh_auto_clean:
1946 debian/control.modules debian/VERSION
1947 sed -i '/Package: dpdk-modules-/,/`tail -n1 debian/control.modules.in`/d' debian/control
1948 rm -f debian/dpdk-igb-uio-dkms.dkms debian/dpdk-rte-kni-dkms.dkms
1949+<<<<<<< debian/rules
1950+=======
1951+ rm -f doc/guides/compressdevs/overview_feature_table.txt \
1952+ doc/guides/cryptodevs/overview_aead_table.txt \
1953+ doc/guides/cryptodevs/overview_asym_table.txt \
1954+ doc/guides/cryptodevs/overview_auth_table.txt \
1955+ doc/guides/cryptodevs/overview_cipher_table.txt \
1956+ doc/guides/cryptodevs/overview_feature_table.txt \
1957+ doc/guides/nics/overview_table.txt
1958+>>>>>>> debian/rules
1959 dh_auto_clean
1960
1961 override_dh_auto_configure:
1962diff --git a/devtools/check-git-log.sh b/devtools/check-git-log.sh
1963index 85d67fb..75b4aa5 100755
1964--- a/devtools/check-git-log.sh
1965+++ b/devtools/check-git-log.sh
1966@@ -90,9 +90,16 @@ bad=$(echo "$headlines" | grep -E --color=always \
1967 -e ':.*\<[hsf]w\>' \
1968 -e ':.*\<l[234]\>' \
1969 -e ':.*\<api\>' \
1970+<<<<<<< devtools/check-git-log.sh
1971 -e ':.*\<arm\>' \
1972 -e ':.*\<armv7\>' \
1973 -e ':.*\<armv8\>' \
1974+=======
1975+ -e ':.*\<ARM\>' \
1976+ -e ':.*\<(Aarch64|AArch64|AARCH64|Aarch32|AArch32|AARCH32)\>' \
1977+ -e ':.*\<(Armv7|ARMv7|ArmV7|armV7|ARMV7)\>' \
1978+ -e ':.*\<(Armv8|ARMv8|ArmV8|armV8|ARMV8)\>' \
1979+>>>>>>> devtools/check-git-log.sh
1980 -e ':.*\<crc\>' \
1981 -e ':.*\<dma\>' \
1982 -e ':.*\<eeprom\>' \
1983diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh
1984index 1d21e91..51f6f11 100755
1985--- a/devtools/check-symbol-change.sh
1986+++ b/devtools/check-symbol-change.sh
1987@@ -31,6 +31,10 @@ build_map_changes()
1988 # Triggering this rule sets in_sec to 1, which actives the
1989 # symbol rule below
1990 /^.*{/ {
1991+<<<<<<< devtools/check-symbol-change.sh
1992+=======
1993+ gsub("+", "");
1994+>>>>>>> devtools/check-symbol-change.sh
1995 if (in_map == 1) {
1996 sec=$(NF-1); in_sec=1;
1997 }
1998@@ -96,7 +100,11 @@ check_for_rule_violations()
1999 then
2000 # Just inform the user of this occurrence, but
2001 # don't flag it as an error
2002+<<<<<<< devtools/check-symbol-change.sh
2003 echo -n "INFO: symbol $syname is added but "
2004+=======
2005+ echo -n "INFO: symbol $symname is added but "
2006+>>>>>>> devtools/check-symbol-change.sh
2007 echo -n "patch has insuficient context "
2008 echo -n "to determine the section name "
2009 echo -n "please ensure the version is "
2010@@ -104,6 +112,7 @@ check_for_rule_violations()
2011 continue
2012 fi
2013
2014+<<<<<<< devtools/check-symbol-change.sh
2015 if [ "$secname" != "EXPERIMENTAL" ]
2016 then
2017 # Symbols that are getting added in a section
2018@@ -124,6 +133,48 @@ check_for_rule_violations()
2019 else
2020
2021 if [ "$secname" != "EXPERIMENTAL" ]
2022+=======
2023+ oldsecname=$(sed -n \
2024+ "s#$mname $symname \(.*\) del#\1#p" "$mapdb")
2025+
2026+ # A symbol can not enter a non experimental
2027+ # section directly
2028+ if [ -z "$oldsecname" ]
2029+ then
2030+ if [ "$secname" = 'EXPERIMENTAL' ]
2031+ then
2032+ echo -n "INFO: symbol $symname has "
2033+ echo -n "been added to the "
2034+ echo -n "EXPERIMENTAL section of the "
2035+ echo "version map"
2036+ continue
2037+ else
2038+ echo -n "ERROR: symbol $symname "
2039+ echo -n "is added in the $secname "
2040+ echo -n "section, but is expected to "
2041+ echo -n "be added in the EXPERIMENTAL "
2042+ echo "section of the version map"
2043+ ret=1
2044+ continue
2045+ fi
2046+ fi
2047+
2048+ # This symbol is moving between two sections (the
2049+ # original section is not experimental).
2050+ # This can be legit, just warn.
2051+ if [ "$oldsecname" != 'EXPERIMENTAL' ]
2052+ then
2053+ echo -n "INFO: symbol $symname is being "
2054+ echo -n "moved from $oldsecname to $secname. "
2055+ echo -n "Ensure that it has gone through the "
2056+ echo "deprecation process"
2057+ continue
2058+ fi
2059+ else
2060+
2061+ if ! grep -q "$mname $symname .* add" "$mapdb" && \
2062+ [ "$secname" != "EXPERIMENTAL" ]
2063+>>>>>>> devtools/check-symbol-change.sh
2064 then
2065 # Just inform users that non-experimenal
2066 # symbols need to go through a deprecation
2067diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh
2068index ee8debe..5803b63 100755
2069--- a/devtools/checkpatches.sh
2070+++ b/devtools/checkpatches.sh
2071@@ -44,6 +44,11 @@ print_usage () {
2072 }
2073
2074 check_forbidden_additions() { # <patch>
2075+<<<<<<< devtools/checkpatches.sh
2076+=======
2077+ res=0
2078+
2079+>>>>>>> devtools/checkpatches.sh
2080 # refrain from new additions of rte_panic() and rte_exit()
2081 # multiple folders and expressions are separated by spaces
2082 awk -v FOLDERS="lib drivers" \
2083@@ -51,7 +56,12 @@ check_forbidden_additions() { # <patch>
2084 -v RET_ON_FAIL=1 \
2085 -v MESSAGE='Using rte_panic/rte_exit' \
2086 -f $(dirname $(readlink -e $0))/check-forbidden-tokens.awk \
2087+<<<<<<< devtools/checkpatches.sh
2088 "$1"
2089+=======
2090+ "$1" || res=1
2091+
2092+>>>>>>> devtools/checkpatches.sh
2093 # svg figures must be included with wildcard extension
2094 # because of png conversion for pdf docs
2095 awk -v FOLDERS='doc' \
2096@@ -59,7 +69,13 @@ check_forbidden_additions() { # <patch>
2097 -v RET_ON_FAIL=1 \
2098 -v MESSAGE='Using explicit .svg extension instead of .*' \
2099 -f $(dirname $(readlink -e $0))/check-forbidden-tokens.awk \
2100+<<<<<<< devtools/checkpatches.sh
2101 "$1"
2102+=======
2103+ "$1" || res=1
2104+
2105+ return $res
2106+>>>>>>> devtools/checkpatches.sh
2107 }
2108
2109 number=0
2110diff --git a/devtools/test-build.sh b/devtools/test-build.sh
2111index 42f4ad0..83a93bb 100755
2112--- a/devtools/test-build.sh
2113+++ b/devtools/test-build.sh
2114@@ -9,6 +9,10 @@ default_path=$PATH
2115 # - DPDK_BUILD_TEST_CONFIGS (defconfig1+option1+option2 defconfig2)
2116 # - DPDK_DEP_ARCHIVE
2117 # - DPDK_DEP_CFLAGS
2118+<<<<<<< devtools/test-build.sh
2119+=======
2120+# - DPDK_DEP_ELF (y/[n])
2121+>>>>>>> devtools/test-build.sh
2122 # - DPDK_DEP_ISAL (y/[n])
2123 # - DPDK_DEP_JSON (y/[n])
2124 # - DPDK_DEP_LDFLAGS
2125@@ -96,6 +100,10 @@ reset_env ()
2126 unset CROSS
2127 unset DPDK_DEP_ARCHIVE
2128 unset DPDK_DEP_CFLAGS
2129+<<<<<<< devtools/test-build.sh
2130+=======
2131+ unset DPDK_DEP_ELF
2132+>>>>>>> devtools/test-build.sh
2133 unset DPDK_DEP_ISAL
2134 unset DPDK_DEP_JSON
2135 unset DPDK_DEP_LDFLAGS
2136@@ -148,7 +156,11 @@ config () # <directory> <target> <options>
2137 test "$DPDK_DEP_ARCHIVE" != y || \
2138 sed -ri 's,(RESOURCE_TAR=)n,\1y,' $1/.config
2139 test "$DPDK_DEP_ISAL" != y || \
2140+<<<<<<< devtools/test-build.sh
2141 sed -ri 's,(ISAL_PMD=)n,\1y,' $1/.config
2142+=======
2143+ sed -ri 's,(PMD_ISAL=)n,\1y,' $1/.config
2144+>>>>>>> devtools/test-build.sh
2145 test "$DPDK_DEP_MLX" != y || \
2146 sed -ri 's,(MLX._PMD=)n,\1y,' $1/.config
2147 test "$DPDK_DEP_SZE" != y || \
2148@@ -156,6 +168,11 @@ config () # <directory> <target> <options>
2149 test "$DPDK_DEP_ZLIB" != y || \
2150 sed -ri 's,(BNX2X_PMD=)n,\1y,' $1/.config
2151 test "$DPDK_DEP_ZLIB" != y || \
2152+<<<<<<< devtools/test-build.sh
2153+=======
2154+ sed -ri 's,(PMD_ZLIB=)n,\1y,' $1/.config
2155+ test "$DPDK_DEP_ZLIB" != y || \
2156+>>>>>>> devtools/test-build.sh
2157 sed -ri 's,(COMPRESSDEV_TEST=)n,\1y,' $1/.config
2158 test "$DPDK_DEP_PCAP" != y || \
2159 sed -ri 's,(PCAP=)n,\1y,' $1/.config
2160@@ -176,7 +193,11 @@ config () # <directory> <target> <options>
2161 test "$DPDK_DEP_SSL" != y || \
2162 sed -ri 's,(PMD_OPENSSL=)n,\1y,' $1/.config
2163 test "$DPDK_DEP_SSL" != y || \
2164+<<<<<<< devtools/test-build.sh
2165 sed -ri 's,(PMD_QAT=)n,\1y,' $1/.config
2166+=======
2167+ sed -ri 's,(QAT_SYM=)n,\1y,' $1/.config
2168+>>>>>>> devtools/test-build.sh
2169 test -z "$FLEXRAN_SDK" || \
2170 sed -ri 's,(BBDEV_TURBO_SW=)n,\1y,' $1/.config
2171 sed -ri 's,(SCHED_.*=)n,\1y,' $1/.config
2172@@ -186,7 +207,13 @@ config () # <directory> <target> <options>
2173 sed -ri 's,(MVPP2_PMD=)n,\1y,' $1/.config
2174 test -z "$LIBMUSDK_PATH" || \
2175 sed -ri 's,(MVNETA_PMD=)n,\1y,' $1/.config
2176+<<<<<<< devtools/test-build.sh
2177 test -z "$DPDK_DEP_JSON" || \
2178+=======
2179+ test "$DPDK_DEP_ELF" != y || \
2180+ sed -ri 's,(BPF_ELF=)n,\1y,' $1/.config
2181+ test "$DPDK_DEP_JSON" != y || \
2182+>>>>>>> devtools/test-build.sh
2183 sed -ri 's,(TELEMETRY=)n,\1y,' $1/.config
2184 build_config_hook $1 $2 $3
2185
2186diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
2187index 79109b7..f031d8a 100755
2188--- a/devtools/test-meson-builds.sh
2189+++ b/devtools/test-meson-builds.sh
2190@@ -7,7 +7,11 @@
2191 # * if a build-directory already exists we assume it was properly configured
2192 # Run ninja after configuration is done.
2193
2194+<<<<<<< devtools/test-meson-builds.sh
2195 srcdir=$(dirname $(readlink -m $0))/..
2196+=======
2197+srcdir=$(dirname $(readlink -f $0))/..
2198+>>>>>>> devtools/test-meson-builds.sh
2199 MESON=${MESON:-meson}
2200 use_shared="--default-library=shared"
2201
2202@@ -24,7 +28,11 @@ build () # <directory> <meson options>
2203 {
2204 builddir=$1
2205 shift
2206+<<<<<<< devtools/test-meson-builds.sh
2207 if [ ! -d "$builddir" ] ; then
2208+=======
2209+ if [ ! -f "$builddir/build.ninja" ] ; then
2210+>>>>>>> devtools/test-meson-builds.sh
2211 options="--werror -Dexamples=all $*"
2212 echo "$MESON $options $srcdir $builddir"
2213 $MESON $options $srcdir $builddir
2214@@ -36,6 +44,10 @@ build () # <directory> <meson options>
2215
2216 # shared and static linked builds with gcc and clang
2217 for c in gcc clang ; do
2218+<<<<<<< devtools/test-meson-builds.sh
2219+=======
2220+ command -v $c >/dev/null 2>&1 || continue
2221+>>>>>>> devtools/test-meson-builds.sh
2222 for s in static shared ; do
2223 export CC="ccache $c"
2224 build build-$c-$s --default-library=$s
2225@@ -43,7 +55,16 @@ for c in gcc clang ; do
2226 done
2227
2228 # test compilation with minimal x86 instruction set
2229+<<<<<<< devtools/test-meson-builds.sh
2230 build build-x86-default -Dmachine=nehalem $use_shared
2231+=======
2232+default_machine='nehalem'
2233+ok=$(cc -march=$default_machine -E - < /dev/null > /dev/null 2>&1 || echo false)
2234+if [ "$ok" = "false" ] ; then
2235+ default_machine='corei7'
2236+fi
2237+build build-x86-default -Dmachine=$default_machine $use_shared
2238+>>>>>>> devtools/test-meson-builds.sh
2239
2240 # enable cross compilation if gcc cross-compiler is found
2241 c=aarch64-linux-gnu-gcc
2242diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
2243index 70bbe82..07bdaa3 100644
2244--- a/doc/guides/compressdevs/overview.rst
2245+++ b/doc/guides/compressdevs/overview.rst
2246@@ -18,7 +18,11 @@ Supported Feature Flags
2247 without making any modifications to it (no compression done).
2248
2249 - "OOP SGL In SGL Out" feature flag stands for
2250+<<<<<<< doc/guides/compressdevs/overview.rst
2251 "Out-of-place Scatter-gather list Input, Scatter-gater list Output",
2252+=======
2253+ "Out-of-place Scatter-gather list Input, Scatter-gather list Output",
2254+>>>>>>> doc/guides/compressdevs/overview.rst
2255 which means PMD supports different scatter-gather styled input and output buffers
2256 (i.e. both can consists of multiple segments).
2257
2258diff --git a/doc/guides/conf.py b/doc/guides/conf.py
2259index c883306..3484984 100644
2260--- a/doc/guides/conf.py
2261+++ b/doc/guides/conf.py
2262@@ -9,6 +9,10 @@ from sphinx import __version__ as sphinx_version
2263 from sphinx.highlighting import PygmentsBridge
2264 from pygments.formatters.latex import LatexFormatter
2265 from os import listdir
2266+<<<<<<< doc/guides/conf.py
2267+=======
2268+from os import environ
2269+>>>>>>> doc/guides/conf.py
2270 from os.path import basename
2271 from os.path import dirname
2272 from os.path import join as path_join
2273@@ -37,7 +41,13 @@ html_add_permalinks = ""
2274 html_show_copyright = False
2275 highlight_language = 'none'
2276
2277+<<<<<<< doc/guides/conf.py
2278 version = subprocess.check_output(['make', '-sRrC', '../../', 'showversion'])
2279+=======
2280+# If MAKEFLAGS is exported by the user, garbage text might end up in version
2281+version = subprocess.check_output(['make', '-sRrC', '../../', 'showversion'],
2282+ env=dict(environ, MAKEFLAGS=""))
2283+>>>>>>> doc/guides/conf.py
2284 version = version.decode('utf-8').rstrip()
2285 release = version
2286
2287@@ -388,6 +398,14 @@ def setup(app):
2288 'AEAD',
2289 'AEAD algorithms in crypto drivers',
2290 'AEAD algorithm')
2291+<<<<<<< doc/guides/conf.py
2292+=======
2293+ table_file = dirname(__file__) + '/cryptodevs/overview_asym_table.txt'
2294+ generate_overview_table(table_file, 5,
2295+ 'Asymmetric',
2296+ 'Asymmetric algorithms in crypto drivers',
2297+ 'Asymmetric algorithm')
2298+>>>>>>> doc/guides/conf.py
2299 table_file = dirname(__file__) + '/compressdevs/overview_feature_table.txt'
2300 generate_overview_table(table_file, 1,
2301 'Features',
2302diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst
2303index d96698a..517c5c3 100644
2304--- a/doc/guides/contributing/coding_style.rst
2305+++ b/doc/guides/contributing/coding_style.rst
2306@@ -825,10 +825,17 @@ format.
2307 .. code-block:: python
2308
2309 sources = files('file1.c', ...)
2310+<<<<<<< doc/guides/contributing/coding_style.rst
2311 headers = files('file1.c', ...)
2312
2313
2314 The will build based on a number of conventions and assumptions within the DPDK
2315+=======
2316+ headers = files('file1.h', ...)
2317+
2318+
2319+This will build based on a number of conventions and assumptions within the DPDK
2320+>>>>>>> doc/guides/contributing/coding_style.rst
2321 itself, for example, that the library name is the same as the directory name in
2322 which the files are stored.
2323
2324diff --git a/doc/guides/contributing/documentation.rst b/doc/guides/contributing/documentation.rst
2325index c28a95c..af59be8 100644
2326--- a/doc/guides/contributing/documentation.rst
2327+++ b/doc/guides/contributing/documentation.rst
2328@@ -40,14 +40,22 @@ The main directories that contain files related to documentation are shown below
2329 |-- ...
2330
2331
2332+<<<<<<< doc/guides/contributing/documentation.rst
2333 The API documentation is built from `Doxygen <http://www.stack.nl/~dimitri/doxygen/>`_ comments in the header files.
2334+=======
2335+The API documentation is built from `Doxygen <http://www.doxygen.nl>`_ comments in the header files.
2336+>>>>>>> doc/guides/contributing/documentation.rst
2337 These files are mainly in the ``lib/librte_*`` directories although some of the Poll Mode Drivers in ``drivers/net``
2338 are also documented with Doxygen.
2339
2340 The configuration files that are used to control the Doxygen output are in the ``doc/api`` directory.
2341
2342 The user guides such as *The Programmers Guide* and the *FreeBSD* and *Linux Getting Started* Guides are generated
2343+<<<<<<< doc/guides/contributing/documentation.rst
2344 from RST markup text files using the `Sphinx <http://sphinx-doc.org/index.html>`_ Documentation Generator.
2345+=======
2346+from RST markup text files using the `Sphinx <http://sphinx-doc.org>`_ Documentation Generator.
2347+>>>>>>> doc/guides/contributing/documentation.rst
2348
2349 These files are included in the ``doc/guides/`` directory.
2350 The output is controlled by the ``doc/guides/conf.py`` file.
2351@@ -174,7 +182,12 @@ For full support with figure and table captioning the latest version of Sphinx c
2352 sudo pip install --upgrade sphinx
2353 sudo pip install --upgrade sphinx_rtd_theme
2354
2355+<<<<<<< doc/guides/contributing/documentation.rst
2356 For further information on getting started with Sphinx see the `Sphinx Tutorial <http://sphinx-doc.org/tutorial.html>`_.
2357+=======
2358+For further information on getting started with Sphinx see the
2359+`Sphinx Getting Started <http://www.sphinx-doc.org/en/master/usage/quickstart.html>`_.
2360+>>>>>>> doc/guides/contributing/documentation.rst
2361
2362 .. Note::
2363
2364@@ -204,6 +217,22 @@ The main required packages can be installed as follows:
2365 # Red Hat/Fedora, selective install.
2366 sudo dnf -y install texlive-collection-latexextra
2367
2368+<<<<<<< doc/guides/contributing/documentation.rst
2369+=======
2370+`Latexmk <http://personal.psu.edu/jcc8/software/latexmk-jcc/>`_ is a perl script
2371+for running LaTeX for resolving cross references,
2372+and it also runs auxiliary programs like bibtex, makeindex if necessary, and dvips.
2373+It has also a number of other useful capabilities (see man 1 latexmk).
2374+
2375+.. code-block:: console
2376+
2377+ # Ubuntu/Debian.
2378+ sudo apt-get -y install latexmk
2379+
2380+ # Red Hat/Fedora.
2381+ sudo dnf -y install latexmk
2382+
2383+>>>>>>> doc/guides/contributing/documentation.rst
2384
2385 Build commands
2386 ~~~~~~~~~~~~~~
2387@@ -583,7 +612,11 @@ Doxygen Guidelines
2388
2389 The DPDK API is documented using Doxygen comment annotations in the header files.
2390 Doxygen is a very powerful tool, it is extremely configurable and with a little effort can be used to create expressive documents.
2391+<<<<<<< doc/guides/contributing/documentation.rst
2392 See the `Doxygen website <http://www.stack.nl/~dimitri/doxygen/>`_ for full details on how to use it.
2393+=======
2394+See the `Doxygen website <http://www.doxygen.nl>`_ for full details on how to use it.
2395+>>>>>>> doc/guides/contributing/documentation.rst
2396
2397 The following are some guidelines for use of Doxygen in the DPDK API documentation:
2398
2399diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst
2400index a64bb03..4d0ccef 100644
2401--- a/doc/guides/contributing/patches.rst
2402+++ b/doc/guides/contributing/patches.rst
2403@@ -8,7 +8,11 @@ Contributing Code to DPDK
2404
2405 This document outlines the guidelines for submitting code to DPDK.
2406
2407+<<<<<<< doc/guides/contributing/patches.rst
2408 The DPDK development process is modelled (loosely) on the Linux Kernel development model so it is worth reading the
2409+=======
2410+The DPDK development process is modeled (loosely) on the Linux Kernel development model so it is worth reading the
2411+>>>>>>> doc/guides/contributing/patches.rst
2412 Linux kernel guide on submitting patches:
2413 `How to Get Your Change Into the Linux Kernel <https://www.kernel.org/doc/html/latest/process/submitting-patches.html>`_.
2414 The rationale for many of the DPDK guidelines is explained in greater detail in the kernel guidelines.
2415@@ -32,6 +36,13 @@ The mailing list for DPDK development is `dev@dpdk.org <http://mails.dpdk.org/ar
2416 Contributors will need to `register for the mailing list <http://mails.dpdk.org/listinfo/dev>`_ in order to submit patches.
2417 It is also worth registering for the DPDK `Patchwork <http://patches.dpdk.org/project/dpdk/list/>`_
2418
2419+<<<<<<< doc/guides/contributing/patches.rst
2420+=======
2421+If you are using the GitHub service, you can link your repository to
2422+the ``travis-ci.org`` build service. When you push patches to your GitHub
2423+repository, the travis service will automatically build your changes.
2424+
2425+>>>>>>> doc/guides/contributing/patches.rst
2426 The development process requires some familiarity with the ``git`` version control system.
2427 Refer to the `Pro Git Book <http://www.git-scm.com/book/>`_ for further information.
2428
2429diff --git a/doc/guides/contributing/versioning.rst b/doc/guides/contributing/versioning.rst
2430index 01b3624..23965d7 100644
2431--- a/doc/guides/contributing/versioning.rst
2432+++ b/doc/guides/contributing/versioning.rst
2433@@ -548,15 +548,24 @@ utilities which can be installed via a package manager. For example::
2434
2435 The syntax of the ``validate-abi.sh`` utility is::
2436
2437+<<<<<<< doc/guides/contributing/versioning.rst
2438 ./devtools/validate-abi.sh <REV1> <REV2> <TARGET>
2439
2440 Where ``REV1`` and ``REV2`` are valid gitrevisions(7)
2441 https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html
2442 on the local repo and target is the usual DPDK compilation target.
2443+=======
2444+ ./devtools/validate-abi.sh <REV1> <REV2>
2445+
2446+Where ``REV1`` and ``REV2`` are valid gitrevisions(7)
2447+https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html
2448+on the local repo.
2449+>>>>>>> doc/guides/contributing/versioning.rst
2450
2451 For example::
2452
2453 # Check between the previous and latest commit:
2454+<<<<<<< doc/guides/contributing/versioning.rst
2455 ./devtools/validate-abi.sh HEAD~1 HEAD x86_64-native-linuxapp-gcc
2456
2457 # Check between two tags:
2458@@ -571,3 +580,22 @@ compile both tags) it will create compatibility reports in the
2459 follows::
2460
2461 grep -lr Incompatible compat_reports/
2462+=======
2463+ ./devtools/validate-abi.sh HEAD~1 HEAD
2464+
2465+ # Check on a specific compilation target:
2466+ ./devtools/validate-abi.sh -t x86_64-native-linux-gcc HEAD~1 HEAD
2467+
2468+ # Check between two tags:
2469+ ./devtools/validate-abi.sh v2.0.0 v2.1.0
2470+
2471+ # Check between git master and local topic-branch "vhost-hacking":
2472+ ./devtools/validate-abi.sh master vhost-hacking
2473+
2474+After the validation script completes (it can take a while since it need to
2475+compile both tags) it will create compatibility reports in the
2476+``./abi-check/compat_report`` directory. Listed incompatibilities can be found
2477+as follows::
2478+
2479+ grep -lr Incompatible abi-check/compat_reports/
2480+>>>>>>> doc/guides/contributing/versioning.rst
2481diff --git a/doc/guides/cryptodevs/aesni_mb.rst b/doc/guides/cryptodevs/aesni_mb.rst
2482index 63e060d..3818e52 100644
2483--- a/doc/guides/cryptodevs/aesni_mb.rst
2484+++ b/doc/guides/cryptodevs/aesni_mb.rst
2485@@ -1,5 +1,9 @@
2486 .. SPDX-License-Identifier: BSD-3-Clause
2487+<<<<<<< doc/guides/cryptodevs/aesni_mb.rst
2488 Copyright(c) 2015-2017 Intel Corporation.
2489+=======
2490+ Copyright(c) 2015-2018 Intel Corporation.
2491+>>>>>>> doc/guides/cryptodevs/aesni_mb.rst
2492
2493 AESN-NI Multi Buffer Crypto Poll Mode Driver
2494 ============================================
2495@@ -51,6 +55,11 @@ Limitations
2496
2497 * Chained mbufs are not supported.
2498 * Only in-place is currently supported (destination address is the same as source address).
2499+<<<<<<< doc/guides/cryptodevs/aesni_mb.rst
2500+=======
2501+* RTE_CRYPTO_AEAD_AES_GCM only works properly when the multi-buffer library is
2502+ 0.51.0 or newer.
2503+>>>>>>> doc/guides/cryptodevs/aesni_mb.rst
2504
2505
2506 Installation
2507@@ -59,8 +68,13 @@ Installation
2508 To build DPDK with the AESNI_MB_PMD the user is required to download the multi-buffer
2509 library from `here <https://github.com/01org/intel-ipsec-mb>`_
2510 and compile it on their user system before building DPDK.
2511+<<<<<<< doc/guides/cryptodevs/aesni_mb.rst
2512 The latest version of the library supported by this PMD is v0.50, which
2513 can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.50.zip>`_.
2514+=======
2515+The latest version of the library supported by this PMD is v0.51, which
2516+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.51.zip>`.
2517+>>>>>>> doc/guides/cryptodevs/aesni_mb.rst
2518
2519 .. code-block:: console
2520
2521@@ -123,7 +137,11 @@ Extra notes
2522 For AES Counter mode (AES-CTR), the library supports two different sizes for Initialization
2523 Vector (IV):
2524
2525+<<<<<<< doc/guides/cryptodevs/aesni_mb.rst
2526 * 12 bytes: used mainly for IPSec, as it requires 12 bytes from the user, which internally
2527+=======
2528+* 12 bytes: used mainly for IPsec, as it requires 12 bytes from the user, which internally
2529+>>>>>>> doc/guides/cryptodevs/aesni_mb.rst
2530 are appended the counter block (4 bytes), which is set to 1 for the first block
2531 (no padding required from the user)
2532
2533diff --git a/doc/guides/cryptodevs/features/aesni_gcm.ini b/doc/guides/cryptodevs/features/aesni_gcm.ini
2534index b9e9c90..d213eed 100644
2535--- a/doc/guides/cryptodevs/features/aesni_gcm.ini
2536+++ b/doc/guides/cryptodevs/features/aesni_gcm.ini
2537@@ -30,3 +30,11 @@ AES GMAC = Y
2538 AES GCM (128) = Y
2539 AES GCM (192) = Y
2540 AES GCM (256) = Y
2541+<<<<<<< doc/guides/cryptodevs/features/aesni_gcm.ini
2542+=======
2543+
2544+;
2545+; Supported Asymmetric algorithms of the 'aesni_gcm' crypto driver.
2546+;
2547+[Asymmetric]
2548+>>>>>>> doc/guides/cryptodevs/features/aesni_gcm.ini
2549diff --git a/doc/guides/cryptodevs/features/aesni_mb.ini b/doc/guides/cryptodevs/features/aesni_mb.ini
2550index f729574..b6939bd 100644
2551--- a/doc/guides/cryptodevs/features/aesni_mb.ini
2552+++ b/doc/guides/cryptodevs/features/aesni_mb.ini
2553@@ -32,6 +32,7 @@ DES DOCSIS BPI = Y
2554 ;
2555 [Auth]
2556 MD5 HMAC = Y
2557+<<<<<<< doc/guides/cryptodevs/features/aesni_mb.ini
2558 SHA1 HMAC = Y
2559 SHA224 HMAC = Y
2560 SHA256 HMAC = Y
2561@@ -39,9 +40,35 @@ SHA384 HMAC = Y
2562 SHA512 HMAC = Y
2563 AES XCBC MAC = Y
2564 AES CMAC (128) = Y
2565+=======
2566+SHA1 = Y
2567+SHA1 HMAC = Y
2568+SHA224 = Y
2569+SHA224 HMAC = Y
2570+SHA256 = Y
2571+SHA256 HMAC = Y
2572+SHA384 = Y
2573+SHA384 HMAC = Y
2574+SHA512 = Y
2575+SHA512 HMAC = Y
2576+AES XCBC MAC = Y
2577+AES CMAC (128) = Y
2578+AES GMAC = Y
2579+>>>>>>> doc/guides/cryptodevs/features/aesni_mb.ini
2580
2581 ;
2582 ; Supported AEAD algorithms of the 'aesni_mb' crypto driver.
2583 ;
2584 [AEAD]
2585 AES CCM (128) = Y
2586+<<<<<<< doc/guides/cryptodevs/features/aesni_mb.ini
2587+=======
2588+AES GCM (128) = Y
2589+AES GCM (192) = Y
2590+AES GCM (256) = Y
2591+
2592+;
2593+; Supported Asymmetric algorithms of the 'aesni_mb' crypto driver.
2594+;
2595+[Asymmetric]
2596+>>>>>>> doc/guides/cryptodevs/features/aesni_mb.ini
2597diff --git a/doc/guides/cryptodevs/features/armv8.ini b/doc/guides/cryptodevs/features/armv8.ini
2598index 1e10477..28b32d1 100644
2599--- a/doc/guides/cryptodevs/features/armv8.ini
2600+++ b/doc/guides/cryptodevs/features/armv8.ini
2601@@ -26,3 +26,11 @@ SHA256 HMAC = Y
2602 ; Supported AEAD algorithms of the 'armv8' crypto driver.
2603 ;
2604 [AEAD]
2605+<<<<<<< doc/guides/cryptodevs/features/armv8.ini
2606+=======
2607+
2608+;
2609+; Supported Asymmetric algorithms of the 'armv8' crypto driver.
2610+;
2611+[Asymmetric]
2612+>>>>>>> doc/guides/cryptodevs/features/armv8.ini
2613diff --git a/doc/guides/cryptodevs/features/caam_jr.ini b/doc/guides/cryptodevs/features/caam_jr.ini
2614index 68f8d81..9fe6353 100644
2615--- a/doc/guides/cryptodevs/features/caam_jr.ini
2616+++ b/doc/guides/cryptodevs/features/caam_jr.ini
2617@@ -44,3 +44,11 @@ SHA512 HMAC = Y
2618 AES GCM (128) = Y
2619 AES GCM (192) = Y
2620 AES GCM (256) = Y
2621+<<<<<<< doc/guides/cryptodevs/features/caam_jr.ini
2622+=======
2623+
2624+;
2625+; Supported Asymmetric algorithms of the 'dpaa2_sec' crypto driver.
2626+;
2627+[Asymmetric]
2628+>>>>>>> doc/guides/cryptodevs/features/caam_jr.ini
2629diff --git a/doc/guides/cryptodevs/features/ccp.ini b/doc/guides/cryptodevs/features/ccp.ini
2630index 4722e13..88145a1 100644
2631--- a/doc/guides/cryptodevs/features/ccp.ini
2632+++ b/doc/guides/cryptodevs/features/ccp.ini
2633@@ -57,3 +57,11 @@ SHA3_512 HMAC = Y
2634 AES GCM (128) = Y
2635 AES GCM (192) = Y
2636 AES GCM (256) = Y
2637+<<<<<<< doc/guides/cryptodevs/features/ccp.ini
2638+=======
2639+
2640+;
2641+; Supported Asymmetric algorithms of the 'ccp' crypto driver.
2642+;
2643+[Asymmetric]
2644+>>>>>>> doc/guides/cryptodevs/features/ccp.ini
2645diff --git a/doc/guides/cryptodevs/features/default.ini b/doc/guides/cryptodevs/features/default.ini
2646index 810da0d..7e6f797 100644
2647--- a/doc/guides/cryptodevs/features/default.ini
2648+++ b/doc/guides/cryptodevs/features/default.ini
2649@@ -95,3 +95,15 @@ AES GCM (256) =
2650 AES CCM (128) =
2651 AES CCM (192) =
2652 AES CCM (256) =
2653+<<<<<<< doc/guides/cryptodevs/features/default.ini
2654+=======
2655+;
2656+; Supported Asymmetric algorithms of a default crypto driver.
2657+;
2658+[Asymmetric]
2659+RSA =
2660+DSA =
2661+Modular Exponentiation =
2662+Modular Inversion =
2663+Diffie-hellman =
2664+>>>>>>> doc/guides/cryptodevs/features/default.ini
2665diff --git a/doc/guides/cryptodevs/features/dpaa2_sec.ini b/doc/guides/cryptodevs/features/dpaa2_sec.ini
2666index 69700df..ca8df2d 100644
2667--- a/doc/guides/cryptodevs/features/dpaa2_sec.ini
2668+++ b/doc/guides/cryptodevs/features/dpaa2_sec.ini
2669@@ -44,3 +44,11 @@ SHA512 HMAC = Y
2670 AES GCM (128) = Y
2671 AES GCM (192) = Y
2672 AES GCM (256) = Y
2673+<<<<<<< doc/guides/cryptodevs/features/dpaa2_sec.ini
2674+=======
2675+
2676+;
2677+; Supported Asymmetric algorithms of the 'dpaa2_sec' crypto driver.
2678+;
2679+[Asymmetric]
2680+>>>>>>> doc/guides/cryptodevs/features/dpaa2_sec.ini
2681diff --git a/doc/guides/cryptodevs/features/dpaa_sec.ini b/doc/guides/cryptodevs/features/dpaa_sec.ini
2682index 937b621..15ec61c 100644
2683--- a/doc/guides/cryptodevs/features/dpaa_sec.ini
2684+++ b/doc/guides/cryptodevs/features/dpaa_sec.ini
2685@@ -44,3 +44,11 @@ SHA512 HMAC = Y
2686 AES GCM (128) = Y
2687 AES GCM (192) = Y
2688 AES GCM (256) = Y
2689+<<<<<<< doc/guides/cryptodevs/features/dpaa_sec.ini
2690+=======
2691+
2692+;
2693+; Supported Asymmetric algorithms of the 'dpaa_sec' crypto driver.
2694+;
2695+[Asymmetric]
2696+>>>>>>> doc/guides/cryptodevs/features/dpaa_sec.ini
2697diff --git a/doc/guides/cryptodevs/features/kasumi.ini b/doc/guides/cryptodevs/features/kasumi.ini
2698index 0e138f5..bceb571 100644
2699--- a/doc/guides/cryptodevs/features/kasumi.ini
2700+++ b/doc/guides/cryptodevs/features/kasumi.ini
2701@@ -22,3 +22,11 @@ KASUMI F9 = Y
2702 ; Supported AEAD algorithms of the 'kasumi' crypto driver.
2703 ;
2704 [AEAD]
2705+<<<<<<< doc/guides/cryptodevs/features/kasumi.ini
2706+=======
2707+
2708+;
2709+; Supported Asymmetric algorithms of the 'kasumi' crypto driver.
2710+;
2711+[Asymmetric]
2712+>>>>>>> doc/guides/cryptodevs/features/kasumi.ini
2713diff --git a/doc/guides/cryptodevs/features/mvsam.ini b/doc/guides/cryptodevs/features/mvsam.ini
2714index 0cc90a5..c084308 100644
2715--- a/doc/guides/cryptodevs/features/mvsam.ini
2716+++ b/doc/guides/cryptodevs/features/mvsam.ini
2717@@ -52,3 +52,11 @@ AES GMAC = Y
2718 AES GCM (128) = Y
2719 AES GCM (192) = Y
2720 AES GCM (256) = Y
2721+<<<<<<< doc/guides/cryptodevs/features/mvsam.ini
2722+=======
2723+
2724+;
2725+; Supported Asymmetric algorithms of the 'mvsam' crypto driver.
2726+;
2727+[Asymmetric]
2728+>>>>>>> doc/guides/cryptodevs/features/mvsam.ini
2729diff --git a/doc/guides/cryptodevs/features/null.ini b/doc/guides/cryptodevs/features/null.ini
2730index ecf5779..80dcef5 100644
2731--- a/doc/guides/cryptodevs/features/null.ini
2732+++ b/doc/guides/cryptodevs/features/null.ini
2733@@ -24,3 +24,11 @@ NULL = Y
2734 ; Supported AEAD algorithms of the 'null' crypto driver.
2735 ;
2736 [AEAD]
2737+<<<<<<< doc/guides/cryptodevs/features/null.ini
2738+=======
2739+
2740+;
2741+; Supported Asymmetric algorithms of the 'null' crypto driver.
2742+;
2743+[Asymmetric]
2744+>>>>>>> doc/guides/cryptodevs/features/null.ini
2745diff --git a/doc/guides/cryptodevs/features/octeontx.ini b/doc/guides/cryptodevs/features/octeontx.ini
2746index 307ab88..8246530 100644
2747--- a/doc/guides/cryptodevs/features/octeontx.ini
2748+++ b/doc/guides/cryptodevs/features/octeontx.ini
2749@@ -60,3 +60,11 @@ ZUC EIA3 = Y
2750 AES GCM (128) = Y
2751 AES GCM (192) = Y
2752 AES GCM (256) = Y
2753+<<<<<<< doc/guides/cryptodevs/features/octeontx.ini
2754+=======
2755+
2756+;
2757+; Supported Asymmetric algorithms of the 'octeontx' crypto driver.
2758+;
2759+[Asymmetric]
2760+>>>>>>> doc/guides/cryptodevs/features/octeontx.ini
2761diff --git a/doc/guides/cryptodevs/features/qat.ini b/doc/guides/cryptodevs/features/qat.ini
2762index 4f15ee0..a59dd18 100644
2763--- a/doc/guides/cryptodevs/features/qat.ini
2764+++ b/doc/guides/cryptodevs/features/qat.ini
2765@@ -60,3 +60,11 @@ AES GCM (256) = Y
2766 AES CCM (128) = Y
2767 AES CCM (192) = Y
2768 AES CCM (256) = Y
2769+<<<<<<< doc/guides/cryptodevs/features/qat.ini
2770+=======
2771+
2772+;
2773+; Supported Asymmetric algorithms of the 'qat' crypto driver.
2774+;
2775+[Asymmetric]
2776+>>>>>>> doc/guides/cryptodevs/features/qat.ini
2777diff --git a/doc/guides/cryptodevs/features/snow3g.ini b/doc/guides/cryptodevs/features/snow3g.ini
2778index 2771361..87123f4 100644
2779--- a/doc/guides/cryptodevs/features/snow3g.ini
2780+++ b/doc/guides/cryptodevs/features/snow3g.ini
2781@@ -22,3 +22,11 @@ SNOW3G UIA2 = Y
2782 ; Supported AEAD algorithms of the 'snow3g' crypto driver.
2783 ;
2784 [AEAD]
2785+<<<<<<< doc/guides/cryptodevs/features/snow3g.ini
2786+=======
2787+
2788+;
2789+; Supported Asymmetric algorithms of the 'snow3g' crypto driver.
2790+;
2791+[Asymmetric]
2792+>>>>>>> doc/guides/cryptodevs/features/snow3g.ini
2793diff --git a/doc/guides/cryptodevs/features/virtio.ini b/doc/guides/cryptodevs/features/virtio.ini
2794index 168fc17..d47b4ec 100644
2795--- a/doc/guides/cryptodevs/features/virtio.ini
2796+++ b/doc/guides/cryptodevs/features/virtio.ini
2797@@ -24,3 +24,11 @@ SHA1 HMAC = Y
2798 ; Supported AEAD algorithms of the 'virtio' crypto driver.
2799 ;
2800 [AEAD]
2801+<<<<<<< doc/guides/cryptodevs/features/virtio.ini
2802+=======
2803+
2804+;
2805+; Supported Asymmetric algorithms of the 'virtio' crypto driver.
2806+;
2807+[Asymmetric]
2808+>>>>>>> doc/guides/cryptodevs/features/virtio.ini
2809diff --git a/doc/guides/cryptodevs/features/zuc.ini b/doc/guides/cryptodevs/features/zuc.ini
2810index 5bb02af..b747eff 100644
2811--- a/doc/guides/cryptodevs/features/zuc.ini
2812+++ b/doc/guides/cryptodevs/features/zuc.ini
2813@@ -22,3 +22,11 @@ ZUC EIA3 = Y
2814 ; Supported AEAD algorithms of the 'zuc' crypto driver.
2815 ;
2816 [AEAD]
2817+<<<<<<< doc/guides/cryptodevs/features/zuc.ini
2818+=======
2819+
2820+;
2821+; Supported Asymmetric algorithms of the 'zuc' crypto driver.
2822+;
2823+[Asymmetric]
2824+>>>>>>> doc/guides/cryptodevs/features/zuc.ini
2825diff --git a/doc/guides/cryptodevs/openssl.rst b/doc/guides/cryptodevs/openssl.rst
2826index bdc30f6..3e7cbbc 100644
2827--- a/doc/guides/cryptodevs/openssl.rst
2828+++ b/doc/guides/cryptodevs/openssl.rst
2829@@ -46,6 +46,17 @@ Supported AEAD algorithms:
2830 * ``RTE_CRYPTO_AEAD_AES_GCM``
2831 * ``RTE_CRYPTO_AEAD_AES_CCM``
2832
2833+<<<<<<< doc/guides/cryptodevs/openssl.rst
2834+=======
2835+Supported Asymmetric Crypto algorithms:
2836+
2837+* ``RTE_CRYPTO_ASYM_XFORM_RSA``
2838+* ``RTE_CRYPTO_ASYM_XFORM_DSA``
2839+* ``RTE_CRYPTO_ASYM_XFORM_DH``
2840+* ``RTE_CRYPTO_ASYM_XFORM_MODINV``
2841+* ``RTE_CRYPTO_ASYM_XFORM_MODEX``
2842+
2843+>>>>>>> doc/guides/cryptodevs/openssl.rst
2844
2845 Installation
2846 ------------
2847diff --git a/doc/guides/cryptodevs/overview.rst b/doc/guides/cryptodevs/overview.rst
2848index 607e758..51444a4 100644
2849--- a/doc/guides/cryptodevs/overview.rst
2850+++ b/doc/guides/cryptodevs/overview.rst
2851@@ -18,7 +18,11 @@ Supported Feature Flags
2852 being the operation in-place (input address = output address).
2853
2854 - "OOP SGL In SGL Out" feature flag stands for
2855+<<<<<<< doc/guides/cryptodevs/overview.rst
2856 "Out-of-place Scatter-gather list Input, Scatter-gater list Output",
2857+=======
2858+ "Out-of-place Scatter-gather list Input, Scatter-gather list Output",
2859+>>>>>>> doc/guides/cryptodevs/overview.rst
2860 which means pmd supports different scatter-gather styled input and output buffers
2861 (i.e. both can consists of multiple segments).
2862
2863@@ -58,3 +62,13 @@ Supported AEAD Algorithms
2864 .. _table_crypto_pmd_aead_algos:
2865
2866 .. include:: overview_aead_table.txt
2867+<<<<<<< doc/guides/cryptodevs/overview.rst
2868+=======
2869+
2870+Supported Asymmetric Algorithms
2871+-------------------------------
2872+
2873+.. _table_crypto_pmd_asym_algos:
2874+
2875+.. include:: overview_asym_table.txt
2876+>>>>>>> doc/guides/cryptodevs/overview.rst
2877diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst
2878index 9fb9f01..211e8a1 100644
2879--- a/doc/guides/cryptodevs/qat.rst
2880+++ b/doc/guides/cryptodevs/qat.rst
2881@@ -79,10 +79,16 @@ Limitations
2882 * SNOW 3G (UIA2) and ZUC (EIA3) supported only if hash length and offset fields are byte-multiple.
2883 * No BSD support as BSD QAT kernel driver not available.
2884 * ZUC EEA3/EIA3 is not supported by dh895xcc devices
2885+<<<<<<< doc/guides/cryptodevs/qat.rst
2886 * Maximum additional authenticated data (AAD) for GCM is 240 bytes long.
2887 * Queue pairs are not thread-safe (that is, within a single queue pair, RX and TX from different lcores is not supported).
2888
2889
2890+=======
2891+* Maximum additional authenticated data (AAD) for GCM is 240 bytes long and must be passed to the device in a buffer rounded up to the nearest block-size multiple (x16) and padded with zeros.
2892+* Queue pairs are not thread-safe (that is, within a single queue pair, RX and TX from different lcores is not supported).
2893+
2894+>>>>>>> doc/guides/cryptodevs/qat.rst
2895 Extra notes on KASUMI F9
2896 ~~~~~~~~~~~~~~~~~~~~~~~~
2897
2898diff --git a/doc/guides/cryptodevs/scheduler.rst b/doc/guides/cryptodevs/scheduler.rst
2899index a754a27..bae6932 100644
2900--- a/doc/guides/cryptodevs/scheduler.rst
2901+++ b/doc/guides/cryptodevs/scheduler.rst
2902@@ -165,7 +165,11 @@ operation:
2903 For pure small packet size (64 bytes) traffic however the multi-core mode is not
2904 an optimal solution, as it doesn't give significant per-core performance improvement.
2905 For mixed traffic (IMIX) the optimal number of worker cores is around 2-3.
2906+<<<<<<< doc/guides/cryptodevs/scheduler.rst
2907 For large packets (1.5 Kbytes) scheduler shows linear scaling in performance
2908+=======
2909+ For large packets (1.5 kbytes) scheduler shows linear scaling in performance
2910+>>>>>>> doc/guides/cryptodevs/scheduler.rst
2911 up to eight cores.
2912 Each worker uses its own slave cryptodev. Only software cryptodevs
2913 are supported. Only the same type of cryptodevs should be used concurrently.
2914diff --git a/doc/guides/eventdevs/opdl.rst b/doc/guides/eventdevs/opdl.rst
2915index 0262a33..f74d96e 100644
2916--- a/doc/guides/eventdevs/opdl.rst
2917+++ b/doc/guides/eventdevs/opdl.rst
2918@@ -8,7 +8,11 @@ The OPDL (Ordered Packet Distribution Library) eventdev is a specific\
2919 implementation of the eventdev API. It is particularly suited to packet\
2920 processing workloads that have high throughput and low latency requirements.\
2921 All packets follow the same path through the device. The order in which\
2922+<<<<<<< doc/guides/eventdevs/opdl.rst
2923 packets follow is determinted by the order in which queues are set up.\
2924+=======
2925+packets follow is determined by the order in which queues are set up.\
2926+>>>>>>> doc/guides/eventdevs/opdl.rst
2927 Events are left on the ring until they are transmitted. As a result packets\
2928 do not go out of order
2929
2930diff --git a/doc/guides/eventdevs/sw.rst b/doc/guides/eventdevs/sw.rst
2931index afdcad7..16850e6 100644
2932--- a/doc/guides/eventdevs/sw.rst
2933+++ b/doc/guides/eventdevs/sw.rst
2934@@ -70,7 +70,11 @@ Credit Quanta
2935 The credit quanta is the number of credits that a port will fetch at a time from
2936 the instance's credit pool. Higher numbers will cause less overhead in the
2937 atomic credit fetch code, however it also reduces the overall number of credits
2938+<<<<<<< doc/guides/eventdevs/sw.rst
2939 in the system faster. A balanced number (eg 32) ensures that only small numbers
2940+=======
2941+in the system faster. A balanced number (e.g. 32) ensures that only small numbers
2942+>>>>>>> doc/guides/eventdevs/sw.rst
2943 of credits are pre-allocated at a time, while also mitigating performance impact
2944 of the atomics.
2945
2946@@ -100,7 +104,11 @@ feature would be significant.
2947 ~~~~~~~~~~~~~~~~~~
2948
2949 The software eventdev does not support creating queues that handle all types of
2950+<<<<<<< doc/guides/eventdevs/sw.rst
2951 traffic. An eventdev with this capability allows enqueueing Atomic, Ordered and
2952+=======
2953+traffic. An eventdev with this capability allows enqueuing Atomic, Ordered and
2954+>>>>>>> doc/guides/eventdevs/sw.rst
2955 Parallel traffic to the same queue, but scheduling each of them appropriately.
2956
2957 The reason to not allow Atomic, Ordered and Parallel event types in the
2958diff --git a/doc/guides/howto/lm_bond_virtio_sriov.rst b/doc/guides/howto/lm_bond_virtio_sriov.rst
2959index a47d6db..3868b99 100644
2960--- a/doc/guides/howto/lm_bond_virtio_sriov.rst
2961+++ b/doc/guides/howto/lm_bond_virtio_sriov.rst
2962@@ -328,7 +328,11 @@ On host_server_2: Terminal 1
2963
2964 .. code-block:: console
2965
2966+<<<<<<< doc/guides/howto/lm_bond_virtio_sriov.rst
2967 testomd> show port info all
2968+=======
2969+ testpmd> show port info all
2970+>>>>>>> doc/guides/howto/lm_bond_virtio_sriov.rst
2971 testpmd> show port stats all
2972 testpmd> show bonding config 2
2973 testpmd> port attach 0000:00:04.0
2974diff --git a/doc/guides/howto/lm_virtio_vhost_user.rst b/doc/guides/howto/lm_virtio_vhost_user.rst
2975index 3f5ebd5..ecb1b2e 100644
2976--- a/doc/guides/howto/lm_virtio_vhost_user.rst
2977+++ b/doc/guides/howto/lm_virtio_vhost_user.rst
2978@@ -243,7 +243,11 @@ On host_server_2: Terminal 1
2979
2980 .. code-block:: console
2981
2982+<<<<<<< doc/guides/howto/lm_virtio_vhost_user.rst
2983 testomd> show port info all
2984+=======
2985+ testpmd> show port info all
2986+>>>>>>> doc/guides/howto/lm_virtio_vhost_user.rst
2987 testpmd> show port stats all
2988
2989 Virtio traffic is seen at P0 and P1.
2990@@ -338,7 +342,11 @@ reset_vf_on_212_131.sh
2991 #!/bin/sh
2992 # This script is run on the host 10.237.212.131 to reset SRIOV
2993
2994+<<<<<<< doc/guides/howto/lm_virtio_vhost_user.rst
2995 # BDF for Ninatic NIC is 0000:06:00.0
2996+=======
2997+ # BDF for Niantic NIC is 0000:06:00.0
2998+>>>>>>> doc/guides/howto/lm_virtio_vhost_user.rst
2999 cat /sys/bus/pci/devices/0000\:06\:00.0/max_vfs
3000 echo 0 > /sys/bus/pci/devices/0000\:06\:00.0/max_vfs
3001 cat /sys/bus/pci/devices/0000\:06\:00.0/max_vfs
3002diff --git a/doc/guides/howto/rte_flow.rst b/doc/guides/howto/rte_flow.rst
3003index 6a8534d..fa854f2 100644
3004--- a/doc/guides/howto/rte_flow.rst
3005+++ b/doc/guides/howto/rte_flow.rst
3006@@ -23,7 +23,11 @@ In this example we will create a simple rule that drops packets whose IPv4
3007 destination equals 192.168.3.2. This code is equivalent to the following
3008 testpmd command (wrapped for clarity)::
3009
3010+<<<<<<< doc/guides/howto/rte_flow.rst
3011 tpmd> flow create 0 ingress pattern eth / vlan /
3012+=======
3013+ testpmd> flow create 0 ingress pattern eth / vlan /
3014+>>>>>>> doc/guides/howto/rte_flow.rst
3015 ipv4 dst is 192.168.3.2 / end actions drop / end
3016
3017 Code
3018@@ -118,7 +122,11 @@ a mask.
3019 This code is equivalent to the following testpmd command (wrapped for
3020 clarity)::
3021
3022+<<<<<<< doc/guides/howto/rte_flow.rst
3023 tpmd> flow create 0 ingress pattern eth / vlan /
3024+=======
3025+ testpmd> flow create 0 ingress pattern eth / vlan /
3026+>>>>>>> doc/guides/howto/rte_flow.rst
3027 ipv4 dst spec 192.168.3.0 dst mask 255.255.255.0 /
3028 end actions drop / end
3029
3030@@ -219,7 +227,11 @@ In this example we will create a rule that routes all vlan id 123 to queue 3.
3031 This code is equivalent to the following testpmd command (wrapped for
3032 clarity)::
3033
3034+<<<<<<< doc/guides/howto/rte_flow.rst
3035 tpmd> flow create 0 ingress pattern eth / vlan vid spec 123 /
3036+=======
3037+ testpmd> flow create 0 ingress pattern eth / vlan vid spec 123 /
3038+>>>>>>> doc/guides/howto/rte_flow.rst
3039 end actions queue index 3 / end
3040
3041 Code
3042diff --git a/doc/guides/howto/virtio_user_as_exceptional_path.rst b/doc/guides/howto/virtio_user_as_exceptional_path.rst
3043index 4910c12..66034a0 100644
3044--- a/doc/guides/howto/virtio_user_as_exceptional_path.rst
3045+++ b/doc/guides/howto/virtio_user_as_exceptional_path.rst
3046@@ -1,7 +1,11 @@
3047 .. SPDX-License-Identifier: BSD-3-Clause
3048 Copyright(c) 2016 Intel Corporation.
3049
3050+<<<<<<< doc/guides/howto/virtio_user_as_exceptional_path.rst
3051 .. _virtio_user_as_excpetional_path:
3052+=======
3053+.. _virtio_user_as_exceptional_path:
3054+>>>>>>> doc/guides/howto/virtio_user_as_exceptional_path.rst
3055
3056 Virtio_user as Exceptional Path
3057 ===============================
3058@@ -22,7 +26,11 @@ solution is very promising in:
3059 * Features
3060
3061 vhost-net is born to be a networking solution, which has lots of networking
3062+<<<<<<< doc/guides/howto/virtio_user_as_exceptional_path.rst
3063 related featuers, like multi queue, tso, multi-seg mbuf, etc.
3064+=======
3065+ related features, like multi queue, tso, multi-seg mbuf, etc.
3066+>>>>>>> doc/guides/howto/virtio_user_as_exceptional_path.rst
3067
3068 * Performance
3069
3070@@ -38,7 +46,11 @@ in :numref:`figure_virtio_user_as_exceptional_path`.
3071
3072 .. figure:: img/virtio_user_as_exceptional_path.*
3073
3074+<<<<<<< doc/guides/howto/virtio_user_as_exceptional_path.rst
3075 Overview of a DPDK app using virtio-user as excpetional path
3076+=======
3077+ Overview of a DPDK app using virtio-user as exceptional path
3078+>>>>>>> doc/guides/howto/virtio_user_as_exceptional_path.rst
3079
3080
3081 Sample Usage
3082@@ -75,7 +87,11 @@ compiling the kernel and those kernel modules should be inserted.
3083
3084 * ``queues``
3085
3086+<<<<<<< doc/guides/howto/virtio_user_as_exceptional_path.rst
3087 Number of multi-queues. Each qeueue will be served by a kthread. For example:
3088+=======
3089+ Number of multi-queues. Each queue will be served by a kthread. For example:
3090+>>>>>>> doc/guides/howto/virtio_user_as_exceptional_path.rst
3091
3092 .. code-block:: console
3093
3094diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
3095index 9d1f0fa..c4c39fd 100644
3096--- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
3097+++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
3098@@ -14,6 +14,7 @@ This chapter describes how to cross compile DPDK for ARM64 from x86 build hosts.
3099 Obtain the cross tool chain
3100 ---------------------------
3101 The latest cross compile tool chain can be downloaded from:
3102+<<<<<<< doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
3103 https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/.
3104
3105 Following is the step to get the version 7.2.1, latest one at the time of this writing.
3106@@ -21,18 +22,36 @@ Following is the step to get the version 7.2.1, latest one at the time of this w
3107 .. code-block:: console
3108
3109 wget https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
3110+=======
3111+https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads.
3112+
3113+Following is the step to get the version 8.2, latest one at the time of this writing.
3114+
3115+.. code-block:: console
3116+
3117+ wget https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-2019.01/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu.tar.xz
3118+>>>>>>> doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
3119
3120 Unzip and add into the PATH
3121 ---------------------------
3122
3123 .. code-block:: console
3124
3125+<<<<<<< doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
3126 tar -xvf gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
3127 export PATH=$PATH:<cross_install_dir>/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin
3128
3129 .. note::
3130
3131 For the host requirements and other info, refer to the release note section: https://releases.linaro.org/components/toolchain/binaries/latest/
3132+=======
3133+ tar -xvf gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu.tar.xz
3134+ export PATH=$PATH:<cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/bin
3135+
3136+.. note::
3137+
3138+ For the host requirements and other info, refer to the release note section: https://releases.linaro.org/components/toolchain/binaries/
3139+>>>>>>> doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
3140
3141 Getting the prerequisite library
3142 --------------------------------
3143@@ -69,8 +88,13 @@ Copy the NUMA header files and lib to the cross compiler's directories:
3144
3145 .. code-block:: console
3146
3147+<<<<<<< doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
3148 cp <numa_install_dir>/include/numa*.h <cross_install_dir>/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/../aarch64-linux-gnu/libc/usr/include/
3149 cp <numa_install_dir>/lib/libnuma.a <cross_install_dir>/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/7.2.1/
3150+=======
3151+ cp <numa_install_dir>/include/numa*.h <cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/bin/../aarch64-linux-gnu/libc/usr/include/
3152+ cp <numa_install_dir>/lib/libnuma.a <cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/8.2/
3153+>>>>>>> doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
3154
3155 .. _configure_and_cross_compile_dpdk_build:
3156
3157diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst
3158index 29c5f47..b5427cb 100644
3159--- a/doc/guides/linux_gsg/sys_reqs.rst
3160+++ b/doc/guides/linux_gsg/sys_reqs.rst
3161@@ -70,6 +70,18 @@ Compilation of the DPDK
3162
3163 * libnuma-dev in Debian/Ubuntu;
3164
3165+<<<<<<< doc/guides/linux_gsg/sys_reqs.rst
3166+=======
3167+ .. note::
3168+
3169+ On systems with NUMA support, `libnuma-dev` (aka `numactl-devel`)
3170+ is a recommended dependency when `--legacy-mem` switch is used,
3171+ and a *required* dependency if default memory mode is used.
3172+ While DPDK will compile and run without `libnuma`
3173+ even on NUMA-enabled systems,
3174+ both usability and performance will be degraded.
3175+
3176+>>>>>>> doc/guides/linux_gsg/sys_reqs.rst
3177 * Python, version 2.7+ or 3.2+, to use various helper scripts included in the DPDK package.
3178
3179
3180@@ -175,7 +187,11 @@ In the case of a dual-socket NUMA system,
3181 the number of hugepages reserved at boot time is generally divided equally between the two sockets
3182 (on the assumption that sufficient memory is present on both sockets).
3183
3184+<<<<<<< doc/guides/linux_gsg/sys_reqs.rst
3185 See the Documentation/kernel-parameters.txt file in your Linux source tree for further details of these and other kernel options.
3186+=======
3187+See the Documentation/admin-guide/kernel-parameters.txt file in your Linux source tree for further details of these and other kernel options.
3188+>>>>>>> doc/guides/linux_gsg/sys_reqs.rst
3189
3190 **Alternative:**
3191
3192diff --git a/doc/guides/nics/atlantic.rst b/doc/guides/nics/atlantic.rst
3193index 80591b1..4f6a9b1 100644
3194--- a/doc/guides/nics/atlantic.rst
3195+++ b/doc/guides/nics/atlantic.rst
3196@@ -18,7 +18,11 @@ Supported features
3197 - Port statistics
3198 - RSS (Receive Side Scaling)
3199 - Checksum offload
3200+<<<<<<< doc/guides/nics/atlantic.rst
3201 - Jumbo Frame upto 16K
3202+=======
3203+- Jumbo Frame up to 16K
3204+>>>>>>> doc/guides/nics/atlantic.rst
3205
3206 Configuration Information
3207 ^^^^^^^^^^^^^^^^^^^^^^^^^
3208diff --git a/doc/guides/nics/cxgbe.rst b/doc/guides/nics/cxgbe.rst
3209index 58d88ee..4f40018 100644
3210--- a/doc/guides/nics/cxgbe.rst
3211+++ b/doc/guides/nics/cxgbe.rst
3212@@ -126,7 +126,11 @@ enabling debugging options may affect system performance.
3213
3214 - ``CONFIG_RTE_LIBRTE_CXGBE_TPUT`` (default **y**)
3215
3216+<<<<<<< doc/guides/nics/cxgbe.rst
3217 Toggle behaviour to prefer Throughput or Latency.
3218+=======
3219+ Toggle behavior to prefer Throughput or Latency.
3220+>>>>>>> doc/guides/nics/cxgbe.rst
3221
3222 Runtime Options
3223 ~~~~~~~~~~~~~~~
3224@@ -140,7 +144,11 @@ be passed as part of EAL arguments. For example,
3225
3226 - ``keep_ovlan`` (default **0**)
3227
3228+<<<<<<< doc/guides/nics/cxgbe.rst
3229 Toggle behaviour to keep/strip outer VLAN in Q-in-Q packets. If
3230+=======
3231+ Toggle behavior to keep/strip outer VLAN in Q-in-Q packets. If
3232+>>>>>>> doc/guides/nics/cxgbe.rst
3233 enabled, the outer VLAN tag is preserved in Q-in-Q packets. Otherwise,
3234 the outer VLAN tag is stripped in Q-in-Q packets.
3235
3236diff --git a/doc/guides/nics/dpaa.rst b/doc/guides/nics/dpaa.rst
3237index 2173673..b702304 100644
3238--- a/doc/guides/nics/dpaa.rst
3239+++ b/doc/guides/nics/dpaa.rst
3240@@ -251,7 +251,11 @@ state during application initialization:
3241 automatically be assigned from the these high perf PUSH queues. Any queue
3242 configuration beyond that will be standard Rx queues. The application can
3243 choose to change their number if HW portals are limited.
3244+<<<<<<< doc/guides/nics/dpaa.rst
3245 The valid values are from '0' to '4'. The valuse shall be set to '0' if the
3246+=======
3247+ The valid values are from '0' to '4'. The values shall be set to '0' if the
3248+>>>>>>> doc/guides/nics/dpaa.rst
3249 application want to use eventdev with DPAA device.
3250
3251
3252diff --git a/doc/guides/nics/dpaa2.rst b/doc/guides/nics/dpaa2.rst
3253index 769dc4e..117ceb1 100644
3254--- a/doc/guides/nics/dpaa2.rst
3255+++ b/doc/guides/nics/dpaa2.rst
3256@@ -379,7 +379,11 @@ active -- Ethernet, crypto, compression, etc.
3257 DPBP based Mempool driver
3258 ~~~~~~~~~~~~~~~~~~~~~~~~~
3259
3260+<<<<<<< doc/guides/nics/dpaa2.rst
3261 The DPBP driver is bound to a DPBP objects and provides sevices to
3262+=======
3263+The DPBP driver is bound to a DPBP objects and provides services to
3264+>>>>>>> doc/guides/nics/dpaa2.rst
3265 create a hardware offloaded packet buffer mempool.
3266
3267 DPAA2 NIC Driver
3268diff --git a/doc/guides/nics/enetc.rst b/doc/guides/nics/enetc.rst
3269index 8038bf2..a08e15f 100644
3270--- a/doc/guides/nics/enetc.rst
3271+++ b/doc/guides/nics/enetc.rst
3272@@ -69,7 +69,11 @@ Supported ENETC SoCs
3273 Prerequisites
3274 ~~~~~~~~~~~~~
3275
3276+<<<<<<< doc/guides/nics/enetc.rst
3277 There are three main pre-requisities for executing ENETC PMD on a ENETC
3278+=======
3279+There are three main pre-requisites for executing ENETC PMD on a ENETC
3280+>>>>>>> doc/guides/nics/enetc.rst
3281 compatible board:
3282
3283 1. **ARM 64 Tool Chain**
3284diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
3285index bc38f51..632b47c 100644
3286--- a/doc/guides/nics/enic.rst
3287+++ b/doc/guides/nics/enic.rst
3288@@ -224,7 +224,11 @@ the use of SR-IOV.
3289 passthrough devices do not require libvirt, port profiles, and VM-FEX.
3290
3291
3292+<<<<<<< doc/guides/nics/enic.rst
3293 .. _enic-genic-flow-api:
3294+=======
3295+.. _enic-generic-flow-api:
3296+>>>>>>> doc/guides/nics/enic.rst
3297
3298 Generic Flow API support
3299 ------------------------
3300@@ -247,7 +251,11 @@ Generic Flow API is supported. The baseline support is:
3301 in the pattern.
3302
3303 - Attributes: ingress
3304+<<<<<<< doc/guides/nics/enic.rst
3305 - Items: eth, ipv4, ipv6, udp, tcp, vxlan, inner eth, ipv4, ipv6, udp, tcp
3306+=======
3307+ - Items: eth, vlan, ipv4, ipv6, udp, tcp, vxlan, inner eth, vlan, ipv4, ipv6, udp, tcp
3308+>>>>>>> doc/guides/nics/enic.rst
3309 - Actions: queue and void
3310 - Selectors: 'is', 'spec' and 'mask'. 'last' is not supported
3311 - In total, up to 64 bytes of mask is allowed across all headers
3312@@ -255,7 +263,11 @@ Generic Flow API is supported. The baseline support is:
3313 - **1300 and later series VICS with advanced filters enabled**
3314
3315 - Attributes: ingress
3316+<<<<<<< doc/guides/nics/enic.rst
3317 - Items: eth, ipv4, ipv6, udp, tcp, vxlan, inner eth, ipv4, ipv6, udp, tcp
3318+=======
3319+ - Items: eth, vlan, ipv4, ipv6, udp, tcp, vxlan, inner eth, vlan, ipv4, ipv6, udp, tcp
3320+>>>>>>> doc/guides/nics/enic.rst
3321 - Actions: queue, mark, drop, flag and void
3322 - Selectors: 'is', 'spec' and 'mask'. 'last' is not supported
3323 - In total, up to 64 bytes of mask is allowed across all headers
3324@@ -266,6 +278,15 @@ Generic Flow API is supported. The baseline support is:
3325
3326 - Action: count
3327
3328+<<<<<<< doc/guides/nics/enic.rst
3329+=======
3330+The VIC performs packet matching after applying VLAN strip. If VLAN
3331+stripping is enabled, EtherType in the ETH item corresponds to the
3332+stripped VLAN header's EtherType. Stripping does not affect the VLAN
3333+item. TCI and EtherType in the VLAN item are matched against those in
3334+the (stripped) VLAN header whether stripping is enabled or disabled.
3335+
3336+>>>>>>> doc/guides/nics/enic.rst
3337 More features may be added in future firmware and new versions of the VIC.
3338 Please refer to the release notes.
3339
3340@@ -450,6 +471,10 @@ PKT_RX_VLAN_STRIPPED mbuf flags would not be set. This mode is enabled with the
3341 1000 for 1300 series VICs). Filters are checked for matching in the order they
3342 were added. Since there currently is no grouping or priority support,
3343 'catch-all' filters should be added last.
3344+<<<<<<< doc/guides/nics/enic.rst
3345+=======
3346+ - The supported range of IDs for the 'MARK' action is 0 - 0xFFFD.
3347+>>>>>>> doc/guides/nics/enic.rst
3348
3349 - **Statistics**
3350
3351diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
3352index d3f9048..2117ab9 100644
3353--- a/doc/guides/nics/features.rst
3354+++ b/doc/guides/nics/features.rst
3355@@ -285,7 +285,11 @@ Inner RSS
3356
3357 Supports RX RSS hashing on Inner headers.
3358
3359+<<<<<<< doc/guides/nics/features.rst
3360 * **[users] rte_flow_action_rss**: ``level``.
3361+=======
3362+* **[uses] rte_flow_action_rss**: ``level``.
3363+>>>>>>> doc/guides/nics/features.rst
3364 * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_RSS_HASH``, ``mbuf.rss``.
3365
3366
3367@@ -495,7 +499,11 @@ Supports adding traffic mirroring rules.
3368 Inline crypto
3369 -------------
3370
3371+<<<<<<< doc/guides/nics/features.rst
3372 Supports inline crypto processing (eg. inline IPsec). See Security library and PMD documentation for more details.
3373+=======
3374+Supports inline crypto processing (e.g. inline IPsec). See Security library and PMD documentation for more details.
3375+>>>>>>> doc/guides/nics/features.rst
3376
3377 * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_SECURITY``,
3378 * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_SECURITY``.
3379diff --git a/doc/guides/nics/features/qede.ini b/doc/guides/nics/features/qede.ini
3380index 0d08100..8d89853 100644
3381--- a/doc/guides/nics/features/qede.ini
3382+++ b/doc/guides/nics/features/qede.ini
3383@@ -23,6 +23,10 @@ N-tuple filter = Y
3384 Tunnel filter = Y
3385 Flow director = Y
3386 Flow control = Y
3387+<<<<<<< doc/guides/nics/features/qede.ini
3388+=======
3389+Flow API = Y
3390+>>>>>>> doc/guides/nics/features/qede.ini
3391 CRC offload = Y
3392 VLAN offload = Y
3393 L3 checksum offload = Y
3394diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst
3395index bfacbd1..302e66b 100644
3396--- a/doc/guides/nics/i40e.rst
3397+++ b/doc/guides/nics/i40e.rst
3398@@ -571,7 +571,11 @@ bandwidth setting.
3399 TC TX scheduling mode setting
3400 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3401
3402+<<<<<<< doc/guides/nics/i40e.rst
3403 There're 2 TX scheduling modes for TCs, round robin and strict priority mode.
3404+=======
3405+There are 2 TX scheduling modes for TCs, round robin and strict priority mode.
3406+>>>>>>> doc/guides/nics/i40e.rst
3407 If a TC is set to strict priority mode, it can consume unlimited bandwidth.
3408 It means if APP has set the max bandwidth for that TC, it comes to no
3409 effect.
3410@@ -695,3 +699,12 @@ See :numref:`figure_intel_perf_test_setup` for the performance test setup.
3411 * Start creating a stream on packet generator.
3412
3413 * Set the Ethernet II type to 0x0800.
3414+<<<<<<< doc/guides/nics/i40e.rst
3415+=======
3416+
3417+Tx bytes affected by the link status change
3418+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3419+
3420+For firmware versions prior to 6.01 for X710 series and 3.33 for X722 series, the tx_bytes statistics data is affected by
3421+the link down event. Each time the link status changes to down, the tx_bytes decreases 110 bytes.
3422+>>>>>>> doc/guides/nics/i40e.rst
3423diff --git a/doc/guides/nics/ifc.rst b/doc/guides/nics/ifc.rst
3424index 48f9adf..3629035 100644
3425--- a/doc/guides/nics/ifc.rst
3426+++ b/doc/guides/nics/ifc.rst
3427@@ -19,9 +19,15 @@ Config File Options
3428
3429 The following option can be modified in the ``config`` file.
3430
3431+<<<<<<< doc/guides/nics/ifc.rst
3432 - ``CONFIG_RTE_LIBRTE_IFCVF_VDPA_PMD`` (default ``y`` for linux)
3433
3434 Toggle compilation of the ``librte_ifcvf_vdpa`` driver.
3435+=======
3436+- ``CONFIG_RTE_LIBRTE_IFC_PMD`` (default ``y`` for linux)
3437+
3438+ Toggle compilation of the ``librte_pmd_ifc`` driver.
3439+>>>>>>> doc/guides/nics/ifc.rst
3440
3441
3442 IFCVF vDPA Implementation
3443diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
3444index 1c294b0..083efb2 100644
3445--- a/doc/guides/nics/ixgbe.rst
3446+++ b/doc/guides/nics/ixgbe.rst
3447@@ -203,8 +203,13 @@ as a workaround.
3448 X550 does not support legacy interrupt mode
3449 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3450
3451+<<<<<<< doc/guides/nics/ixgbe.rst
3452 Desccription
3453 ^^^^^^^^^^^^
3454+=======
3455+Description
3456+^^^^^^^^^^^
3457+>>>>>>> doc/guides/nics/ixgbe.rst
3458 X550 cannot get interrupts if using ``uio_pci_generic`` module or using legacy
3459 interrupt mode of ``igb_uio`` or ``vfio``. Because the errata of X550 states
3460 that the Interrupt Status bit is not implemented. The errata is the item #22
3461diff --git a/doc/guides/nics/kni.rst b/doc/guides/nics/kni.rst
3462index 204fbd5..27a78bd 100644
3463--- a/doc/guides/nics/kni.rst
3464+++ b/doc/guides/nics/kni.rst
3465@@ -64,7 +64,11 @@ backend device by default.
3466 PMD arguments
3467 -------------
3468
3469+<<<<<<< doc/guides/nics/kni.rst
3470 ``no_request_thread``, by default PMD creates a phtread for each KNI interface
3471+=======
3472+``no_request_thread``, by default PMD creates a pthread for each KNI interface
3473+>>>>>>> doc/guides/nics/kni.rst
3474 to handle Linux network interface control commands, like ``ifconfig kni0 up``
3475
3476 With ``no_request_thread`` option, pthread is not created and control commands
3477diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
3478index 23f0f57..e74c409 100644
3479--- a/doc/guides/nics/mlx5.rst
3480+++ b/doc/guides/nics/mlx5.rst
3481@@ -85,6 +85,14 @@ Limitations
3482
3483 - Forked secondary process not supported.
3484 - All mempools must be initialized before rte_eth_dev_start().
3485+<<<<<<< doc/guides/nics/mlx5.rst
3486+=======
3487+ - External memory unregistered in EAL memseg list cannot be used for DMA
3488+ unless such memory has been registered by ``mlx5_mr_update_ext_mp()`` in
3489+ primary process and remapped to the same virtual address in secondary
3490+ process. If the external memory is registered by primary process but has
3491+ different virtual address in secondary process, unexpected error may happen.
3492+>>>>>>> doc/guides/nics/mlx5.rst
3493
3494 - Flow pattern without any specific vlan will match for vlan packets as well:
3495
3496@@ -148,7 +156,11 @@ Limitations
3497
3498 - E-Switch VXLAN decapsulation Flow:
3499
3500+<<<<<<< doc/guides/nics/mlx5.rst
3501 - can be appiled to PF port only.
3502+=======
3503+ - can be applied to PF port only.
3504+>>>>>>> doc/guides/nics/mlx5.rst
3505 - must specify VF port action (packet redirection from PF to VF).
3506 - must specify tunnel outer UDP local (destination) port, wildcards not allowed.
3507 - must specify tunnel outer VNI, wildcards not allowed.
3508@@ -163,7 +175,11 @@ Limitations
3509 - must specify the VXLAN item with tunnel outer parameters.
3510 - must specify the tunnel outer VNI in the VXLAN item.
3511 - must specify the tunnel outer remote (destination) UDP port in the VXLAN item.
3512+<<<<<<< doc/guides/nics/mlx5.rst
3513 - must specify the tunnel outer local (source) IPv4 or IPv6 in the , this address will locally (with scope link) assigned to the outer network interace, wildcards not allowed.
3514+=======
3515+ - must specify the tunnel outer local (source) IPv4 or IPv6 in the , this address will locally (with scope link) assigned to the outer network interface, wildcards not allowed.
3516+>>>>>>> doc/guides/nics/mlx5.rst
3517 - must specify the tunnel outer remote (destination) IPv4 or IPv6 in the VXLAN item, group IPs allowed.
3518 - must specify the tunnel outer destination MAC address in the VXLAN item, this address will be used to create neigh rule.
3519
3520@@ -227,6 +243,7 @@ Environment variables
3521 enabled and most useful when ``CONFIG_RTE_EAL_PMD_PATH`` is also set,
3522 since ``LD_LIBRARY_PATH`` has no effect in this case.
3523
3524+<<<<<<< doc/guides/nics/mlx5.rst
3525 - ``MLX5_PMD_ENABLE_PADDING``
3526
3527 Enables HW packet padding in PCI bus transactions.
3528@@ -241,6 +258,8 @@ Environment variables
3529 This is disabled by default since this can also decrease performance for
3530 unaligned packet sizes.
3531
3532+=======
3533+>>>>>>> doc/guides/nics/mlx5.rst
3534 - ``MLX5_SHUT_UP_BF``
3535
3536 Configures HW Tx doorbell register as IO-mapped.
3537@@ -295,6 +314,22 @@ Run-time configuration
3538
3539 - CPU having 128B cacheline with ConnectX-5 and Bluefield.
3540
3541+<<<<<<< doc/guides/nics/mlx5.rst
3542+=======
3543+- ``rxq_pkt_pad_en`` parameter [int]
3544+
3545+ A nonzero value enables padding Rx packet to the size of cacheline on PCI
3546+ transaction. This feature would waste PCI bandwidth but could improve
3547+ performance by avoiding partial cacheline write which may cause costly
3548+ read-modify-copy in memory transaction on some architectures. Disabled by
3549+ default.
3550+
3551+ Supported on:
3552+
3553+ - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and Bluefield.
3554+ - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5, ConnectX-6 and Bluefield.
3555+
3556+>>>>>>> doc/guides/nics/mlx5.rst
3557 - ``mprq_en`` parameter [int]
3558
3559 A nonzero value enables configuring Multi-Packet Rx queues. Rx queue is
3560@@ -307,7 +342,11 @@ Run-time configuration
3561 buffers per a packet, one large buffer is posted in order to receive multiple
3562 packets on the buffer. A MPRQ buffer consists of multiple fixed-size strides
3563 and each stride receives one packet. MPRQ can improve throughput for
3564+<<<<<<< doc/guides/nics/mlx5.rst
3565 small-packet tarffic.
3566+=======
3567+ small-packet traffic.
3568+>>>>>>> doc/guides/nics/mlx5.rst
3569
3570 When MPRQ is enabled, max_rx_pkt_len can be larger than the size of
3571 user-provided mbuf even if DEV_RX_OFFLOAD_SCATTER isn't enabled. PMD will
3572@@ -318,7 +357,11 @@ Run-time configuration
3573 - ``mprq_log_stride_num`` parameter [int]
3574
3575 Log 2 of the number of strides for Multi-Packet Rx queue. Configuring more
3576+<<<<<<< doc/guides/nics/mlx5.rst
3577 strides can reduce PCIe tarffic further. If configured value is not in the
3578+=======
3579+ strides can reduce PCIe traffic further. If configured value is not in the
3580+>>>>>>> doc/guides/nics/mlx5.rst
3581 range of device capability, the default value will be set with a warning
3582 message. The default value is 4 which is 16 strides per a buffer, valid only
3583 if ``mprq_en`` is set.
3584@@ -565,7 +608,11 @@ Either RDMA Core library with a recent enough Linux kernel release
3585 (recommended) or Mellanox OFED, which provides compatibility with older
3586 releases.
3587
3588+<<<<<<< doc/guides/nics/mlx5.rst
3589 RMDA Core with Linux Kernel
3590+=======
3591+RDMA Core with Linux Kernel
3592+>>>>>>> doc/guides/nics/mlx5.rst
3593 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
3594
3595 - Minimal kernel version : v4.14 or the most recent 4.14-rc (see `Linux installation documentation`_)
3596diff --git a/doc/guides/nics/mvpp2.rst b/doc/guides/nics/mvpp2.rst
3597index b2ddeab..a3aa485 100644
3598--- a/doc/guides/nics/mvpp2.rst
3599+++ b/doc/guides/nics/mvpp2.rst
3600@@ -91,7 +91,11 @@ Limitations
3601 chance to start in a sane state.
3602
3603 - MUSDK architecture does not support changing configuration in run time.
3604+<<<<<<< doc/guides/nics/mvpp2.rst
3605 All nessesary configurations should be done before first dev_start().
3606+=======
3607+ All necessary configurations should be done before first dev_start().
3608+>>>>>>> doc/guides/nics/mvpp2.rst
3609
3610 - RX queue start/stop is not supported.
3611
3612diff --git a/doc/guides/nics/netvsc.rst b/doc/guides/nics/netvsc.rst
3613index 87fabf5..adb62ec 100644
3614--- a/doc/guides/nics/netvsc.rst
3615+++ b/doc/guides/nics/netvsc.rst
3616@@ -89,7 +89,11 @@ operations:
3617
3618 .. Note::
3619
3620+<<<<<<< doc/guides/nics/netvsc.rst
3621 The dpkd-devbind.py script can not be used since it only handles PCI devices.
3622+=======
3623+ The dpdk-devbind.py script can not be used since it only handles PCI devices.
3624+>>>>>>> doc/guides/nics/netvsc.rst
3625
3626
3627 Prerequisites
3628diff --git a/doc/guides/nics/sfc_efx.rst b/doc/guides/nics/sfc_efx.rst
3629index 4006528..170e5a6 100644
3630--- a/doc/guides/nics/sfc_efx.rst
3631+++ b/doc/guides/nics/sfc_efx.rst
3632@@ -96,7 +96,11 @@ Non-supported Features
3633
3634 The features not yet supported include:
3635
3636+<<<<<<< doc/guides/nics/sfc_efx.rst
3637 - Receive queue interupts
3638+=======
3639+- Receive queue interrupts
3640+>>>>>>> doc/guides/nics/sfc_efx.rst
3641
3642 - Priority-based flow control
3643
3644@@ -207,12 +211,21 @@ Supported actions:
3645
3646 Validating flow rules depends on the firmware variant.
3647
3648+<<<<<<< doc/guides/nics/sfc_efx.rst
3649 Ethernet destinaton individual/group match
3650 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3651
3652 Ethernet item supports I/G matching, if only the corresponding bit is set
3653 in the mask of destination address. If destinaton address in the spec is
3654 multicast, it matches all multicast (and broadcast) packets, oherwise it
3655+=======
3656+Ethernet destination individual/group match
3657+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3658+
3659+Ethernet item supports I/G matching, if only the corresponding bit is set
3660+in the mask of destination address. If destination address in the spec is
3661+multicast, it matches all multicast (and broadcast) packets, otherwise it
3662+>>>>>>> doc/guides/nics/sfc_efx.rst
3663 matches unicast packets that are not filtered by other flow rules.
3664
3665 Exceptions to flow rules
3666@@ -346,10 +359,17 @@ boolean parameters value.
3667
3668 - ``perf_profile`` [auto|throughput|low-latency] (default **throughput**)
3669
3670+<<<<<<< doc/guides/nics/sfc_efx.rst
3671 Choose hardware tunning to be optimized for either throughput or
3672 low-latency.
3673 **auto** allows NIC firmware to make a choice based on
3674 installed licences and firmware variant configured using **sfboot**.
3675+=======
3676+ Choose hardware tuning to be optimized for either throughput or
3677+ low-latency.
3678+ **auto** allows NIC firmware to make a choice based on
3679+ installed licenses and firmware variant configured using **sfboot**.
3680+>>>>>>> doc/guides/nics/sfc_efx.rst
3681
3682 - ``stats_update_period_ms`` [long] (default **1000**)
3683
3684diff --git a/doc/guides/nics/szedata2.rst b/doc/guides/nics/szedata2.rst
3685index a2092f9..f3b2981 100644
3686--- a/doc/guides/nics/szedata2.rst
3687+++ b/doc/guides/nics/szedata2.rst
3688@@ -89,7 +89,11 @@ The NFB cards are multi-port multi-queue cards, where (generally) data from any
3689 Ethernet port may be sent to any queue.
3690 They were historically represented in DPDK as a single port.
3691
3692+<<<<<<< doc/guides/nics/szedata2.rst
3693 However, the new NFB-200G2QL card employs an addon cable which allows to connect
3694+=======
3695+However, the new NFB-200G2QL card employs an add-on cable which allows to connect
3696+>>>>>>> doc/guides/nics/szedata2.rst
3697 it to two physical PCI-E slots at the same time (see the diagram below).
3698 This is done to allow 200 Gbps of traffic to be transferred through the PCI-E
3699 bus (note that a single PCI-E 3.0 x16 slot provides only 125 Gbps theoretical
3700diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
3701index 9a3d7b3..c42db54 100644
3702--- a/doc/guides/nics/tap.rst
3703+++ b/doc/guides/nics/tap.rst
3704@@ -40,7 +40,11 @@ actual MAC address: ``00:64:74:61:70:[00-FF]``.
3705 --vdev=net_tap0,mac="00:64:74:61:70:11"
3706
3707 The MAC address will have a user value passed as string. The MAC address is in
3708+<<<<<<< doc/guides/nics/tap.rst
3709 format with delimeter ``:``. The string is byte converted to hex and you get
3710+=======
3711+format with delimiter ``:``. The string is byte converted to hex and you get
3712+>>>>>>> doc/guides/nics/tap.rst
3713 the actual MAC address: ``00:64:74:61:70:11``.
3714
3715 It is possible to specify a remote netdevice to capture packets from by adding
3716diff --git a/doc/guides/platform/dpaa.rst b/doc/guides/platform/dpaa.rst
3717index 3904871..63ecf2c 100644
3718--- a/doc/guides/platform/dpaa.rst
3719+++ b/doc/guides/platform/dpaa.rst
3720@@ -4,7 +4,11 @@
3721 NXP QorIQ DPAA Board Support Package
3722 ====================================
3723
3724+<<<<<<< doc/guides/platform/dpaa.rst
3725 This doc has information about steps to setup QorIq dpaa
3726+=======
3727+This doc has information about steps to setup QorIQ dpaa
3728+>>>>>>> doc/guides/platform/dpaa.rst
3729 based layerscape platform and information about common offload
3730 hw block drivers of **NXP QorIQ DPAA** SoC family.
3731
3732@@ -38,7 +42,11 @@ Common Offload HW Block Drivers
3733 Steps To Setup Platform
3734 -----------------------
3735
3736+<<<<<<< doc/guides/platform/dpaa.rst
3737 There are four main pre-requisities for executing DPAA PMD on a DPAA
3738+=======
3739+There are four main pre-requisites for executing DPAA PMD on a DPAA
3740+>>>>>>> doc/guides/platform/dpaa.rst
3741 compatible board:
3742
3743 1. **ARM 64 Tool Chain**
3744diff --git a/doc/guides/platform/dpaa2.rst b/doc/guides/platform/dpaa2.rst
3745index 5a64406..33f439e 100644
3746--- a/doc/guides/platform/dpaa2.rst
3747+++ b/doc/guides/platform/dpaa2.rst
3748@@ -4,7 +4,11 @@
3749 NXP QorIQ DPAA2 Board Support Package
3750 =====================================
3751
3752+<<<<<<< doc/guides/platform/dpaa2.rst
3753 This doc has information about steps to setup NXP QoriQ DPAA2 platform
3754+=======
3755+This doc has information about steps to setup NXP QorIQ DPAA2 platform
3756+>>>>>>> doc/guides/platform/dpaa2.rst
3757 and information about common offload hw block drivers of
3758 **NXP QorIQ DPAA2** SoC family.
3759
3760@@ -48,7 +52,11 @@ Common Offload HW Block Drivers
3761 Steps To Setup Platform
3762 -----------------------
3763
3764+<<<<<<< doc/guides/platform/dpaa2.rst
3765 There are four main pre-requisities for executing DPAA2 PMD on a DPAA2
3766+=======
3767+There are four main pre-requisites for executing DPAA2 PMD on a DPAA2
3768+>>>>>>> doc/guides/platform/dpaa2.rst
3769 compatible board:
3770
3771 1. **ARM 64 Tool Chain**
3772diff --git a/doc/guides/prog_guide/bbdev.rst b/doc/guides/prog_guide/bbdev.rst
3773index 9de1444..fc9ddaf 100644
3774--- a/doc/guides/prog_guide/bbdev.rst
3775+++ b/doc/guides/prog_guide/bbdev.rst
3776@@ -78,7 +78,11 @@ From the application point of view, each instance of a bbdev device consists of
3777 one or more queues identified by queue IDs. While different devices may have
3778 different capabilities (e.g. support different operation types), all queues on
3779 a device support identical configuration possibilities. A queue is configured
3780+<<<<<<< doc/guides/prog_guide/bbdev.rst
3781 for only one type of operation and is configured at initializations time.
3782+=======
3783+for only one type of operation and is configured at initialization time.
3784+>>>>>>> doc/guides/prog_guide/bbdev.rst
3785 When an operation is enqueued to a specific queue ID, the result is dequeued
3786 from the same queue ID.
3787
3788@@ -678,7 +682,11 @@ bbdev framework, by giving a sample code performing a loop-back operation with a
3789 baseband processor capable of transceiving data packets.
3790
3791 The following sample C-like pseudo-code shows the basic steps to encode several
3792+<<<<<<< doc/guides/prog_guide/bbdev.rst
3793 buffers using (**sw_trubo**) bbdev PMD.
3794+=======
3795+buffers using (**sw_turbo**) bbdev PMD.
3796+>>>>>>> doc/guides/prog_guide/bbdev.rst
3797
3798 .. code-block:: c
3799
3800diff --git a/doc/guides/prog_guide/compressdev.rst b/doc/guides/prog_guide/compressdev.rst
3801index 87e2649..9f6902d 100644
3802--- a/doc/guides/prog_guide/compressdev.rst
3803+++ b/doc/guides/prog_guide/compressdev.rst
3804@@ -17,7 +17,11 @@ Device Creation
3805
3806 Physical compression devices are discovered during the bus probe of the EAL function
3807 which is executed at DPDK initialization, based on their unique device identifier.
3808+<<<<<<< doc/guides/prog_guide/compressdev.rst
3809 For eg. PCI devices can be identified using PCI BDF (bus/bridge, device, function).
3810+=======
3811+For e.g. PCI devices can be identified using PCI BDF (bus/bridge, device, function).
3812+>>>>>>> doc/guides/prog_guide/compressdev.rst
3813 Specific physical compression devices, like other physical devices in DPDK can be
3814 white-listed or black-listed using the EAL command line options.
3815
3816@@ -379,7 +383,11 @@ using priv_xform would look like:
3817 setup op->m_src and op->m_dst;
3818 }
3819 num_enqd = rte_compressdev_enqueue_burst(cdev_id, 0, comp_ops, NUM_OPS);
3820+<<<<<<< doc/guides/prog_guide/compressdev.rst
3821 /* wait for this to complete before enqueing next*/
3822+=======
3823+ /* wait for this to complete before enqueuing next*/
3824+>>>>>>> doc/guides/prog_guide/compressdev.rst
3825 do {
3826 num_deque = rte_compressdev_dequeue_burst(cdev_id, 0 , &processed_ops, NUM_OPS);
3827 } while (num_dqud < num_enqd);
3828@@ -526,7 +534,11 @@ An example pseudocode to set up and process a stream having NUM_CHUNKS with each
3829 op->src.length = CHUNK_LEN;
3830 op->input_chksum = 0;
3831 num_enqd = rte_compressdev_enqueue_burst(cdev_id, 0, &op[i], 1);
3832+<<<<<<< doc/guides/prog_guide/compressdev.rst
3833 /* wait for this to complete before enqueing next*/
3834+=======
3835+ /* wait for this to complete before enqueuing next*/
3836+>>>>>>> doc/guides/prog_guide/compressdev.rst
3837 do {
3838 num_deqd = rte_compressdev_dequeue_burst(cdev_id, 0 , &processed_ops, 1);
3839 } while (num_deqd < num_enqd);
3840diff --git a/doc/guides/prog_guide/cryptodev_lib.rst b/doc/guides/prog_guide/cryptodev_lib.rst
3841index 8ee33c8..a5d0ba6 100644
3842--- a/doc/guides/prog_guide/cryptodev_lib.rst
3843+++ b/doc/guides/prog_guide/cryptodev_lib.rst
3844@@ -14,7 +14,11 @@ and AEAD symmetric and asymmetric Crypto operations.
3845 Design Principles
3846 -----------------
3847
3848+<<<<<<< doc/guides/prog_guide/cryptodev_lib.rst
3849 The cryptodev library follows the same basic principles as those used in DPDKs
3850+=======
3851+The cryptodev library follows the same basic principles as those used in DPDK's
3852+>>>>>>> doc/guides/prog_guide/cryptodev_lib.rst
3853 Ethernet Device framework. The Crypto framework provides a generic Crypto device
3854 framework which supports both physical (hardware) and virtual (software) Crypto
3855 devices as well as a generic Crypto API which allows Crypto devices to be
3856@@ -48,7 +52,11 @@ From the command line using the --vdev EAL option
3857 * If DPDK application requires multiple software crypto PMD devices then required
3858 number of ``--vdev`` with appropriate libraries are to be added.
3859
3860+<<<<<<< doc/guides/prog_guide/cryptodev_lib.rst
3861 * An Application with crypto PMD instaces sharing the same library requires unique ID.
3862+=======
3863+ * An Application with crypto PMD instances sharing the same library requires unique ID.
3864+>>>>>>> doc/guides/prog_guide/cryptodev_lib.rst
3865
3866 Example: ``--vdev 'crypto_aesni_mb0' --vdev 'crypto_aesni_mb1'``
3867
3868@@ -382,7 +390,11 @@ Operation Management and Allocation
3869
3870 The cryptodev library provides an API set for managing Crypto operations which
3871 utilize the Mempool Library to allocate operation buffers. Therefore, it ensures
3872+<<<<<<< doc/guides/prog_guide/cryptodev_lib.rst
3873 that the crytpo operation is interleaved optimally across the channels and
3874+=======
3875+that the crypto operation is interleaved optimally across the channels and
3876+>>>>>>> doc/guides/prog_guide/cryptodev_lib.rst
3877 ranks for optimal processing.
3878 A ``rte_crypto_op`` contains a field indicating the pool that it originated from.
3879 When calling ``rte_crypto_op_free(op)``, the operation returns to its original pool.
3880@@ -586,7 +598,11 @@ Sample code
3881
3882 There are various sample applications that show how to use the cryptodev library,
3883 such as the L2fwd with Crypto sample application (L2fwd-crypto) and
3884+<<<<<<< doc/guides/prog_guide/cryptodev_lib.rst
3885 the IPSec Security Gateway application (ipsec-secgw).
3886+=======
3887+the IPsec Security Gateway application (ipsec-secgw).
3888+>>>>>>> doc/guides/prog_guide/cryptodev_lib.rst
3889
3890 While these applications demonstrate how an application can be created to perform
3891 generic crypto operation, the required complexity hides the basic steps of
3892@@ -767,7 +783,11 @@ using one of the crypto PMDs available in DPDK.
3893
3894 /*
3895 * Dequeue the crypto operations until all the operations
3896+<<<<<<< doc/guides/prog_guide/cryptodev_lib.rst
3897 * are proccessed in the crypto device.
3898+=======
3899+ * are processed in the crypto device.
3900+>>>>>>> doc/guides/prog_guide/cryptodev_lib.rst
3901 */
3902 uint16_t num_dequeued_ops, total_num_dequeued_ops = 0;
3903 do {
3904@@ -846,7 +866,11 @@ the order in which the transforms are passed indicates the order of the chaining
3905 Not all asymmetric crypto xforms are supported for chaining. Currently supported
3906 asymmetric crypto chaining is Diffie-Hellman private key generation followed by
3907 public generation. Also, currently API does not support chaining of symmetric and
3908+<<<<<<< doc/guides/prog_guide/cryptodev_lib.rst
3909 asymmetric crypto xfroms.
3910+=======
3911+asymmetric crypto xforms.
3912+>>>>>>> doc/guides/prog_guide/cryptodev_lib.rst
3913
3914 Each xform defines specific asymmetric crypto algo. Currently supported are:
3915 * RSA
3916diff --git a/doc/guides/prog_guide/dev_kit_build_system.rst b/doc/guides/prog_guide/dev_kit_build_system.rst
3917index da83a31..d1c9202 100644
3918--- a/doc/guides/prog_guide/dev_kit_build_system.rst
3919+++ b/doc/guides/prog_guide/dev_kit_build_system.rst
3920@@ -216,8 +216,11 @@ Objects
3921 Misc
3922 ^^^^
3923
3924+<<<<<<< doc/guides/prog_guide/dev_kit_build_system.rst
3925 * rte.doc.mk: Documentation in the development kit framework
3926
3927+=======
3928+>>>>>>> doc/guides/prog_guide/dev_kit_build_system.rst
3929 * rte.gnuconfigure.mk: Build an application that is configure-based.
3930
3931 * rte.subdir.mk: Build several directories in the development kit framework.
3932@@ -249,7 +252,11 @@ Creates the following symbol:
3933 Which ``dpdk-pmdinfogen`` scans for. Using this information other relevant
3934 bits of data can be exported from the object file and used to produce a
3935 hardware support description, that ``dpdk-pmdinfogen`` then encodes into a
3936+<<<<<<< doc/guides/prog_guide/dev_kit_build_system.rst
3937 json formatted string in the following format:
3938+=======
3939+JSON formatted string in the following format:
3940+>>>>>>> doc/guides/prog_guide/dev_kit_build_system.rst
3941
3942 .. code-block:: c
3943
3944diff --git a/doc/guides/prog_guide/efd_lib.rst b/doc/guides/prog_guide/efd_lib.rst
3945index cb1a1df..9b418cf 100644
3946--- a/doc/guides/prog_guide/efd_lib.rst
3947+++ b/doc/guides/prog_guide/efd_lib.rst
3948@@ -423,6 +423,10 @@ References
3949
3950 1- EFD is based on collaborative research work between Intel and
3951 Carnegie Mellon University (CMU), interested readers can refer to the paper
3952+<<<<<<< doc/guides/prog_guide/efd_lib.rst
3953 “Scaling Up Clustered Network Appliances with ScaleBricks;” Dong Zhou et al.
3954+=======
3955+"Scaling Up Clustered Network Appliances with ScaleBricks" Dong Zhou et al.
3956+>>>>>>> doc/guides/prog_guide/efd_lib.rst
3957 at SIGCOMM 2015 (`http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p241.pdf`)
3958 for more information.
3959diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst b/doc/guides/prog_guide/env_abstraction_layer.rst
3960index 8b5d050..e95f85e 100644
3961--- a/doc/guides/prog_guide/env_abstraction_layer.rst
3962+++ b/doc/guides/prog_guide/env_abstraction_layer.rst
3963@@ -147,6 +147,7 @@ A default validator callback is provided by EAL, which can be enabled with a
3964 ``--socket-limit`` command-line option, for a simple way to limit maximum amount
3965 of memory that can be used by DPDK application.
3966
3967+<<<<<<< doc/guides/prog_guide/env_abstraction_layer.rst
3968 .. note::
3969
3970 In multiprocess scenario, all related processes (i.e. primary process, and
3971@@ -155,6 +156,15 @@ of memory that can be used by DPDK application.
3972 secondary processes must be run in the same mode. The same is applicable to
3973 ``--single-file-segments`` command-line option - both primary and secondary
3974 processes must shared this mode.
3975+=======
3976+.. warning::
3977+ Memory subsystem uses DPDK IPC internally, so memory allocations/callbacks
3978+ and IPC must not be mixed: it is not safe to allocate/free memory inside
3979+ memory-related or IPC callbacks, and it is not safe to use IPC inside
3980+ memory-related callbacks. See chapter
3981+ :ref:`Multi-process Support <Multi-process_Support>` for more details about
3982+ DPDK IPC.
3983+>>>>>>> doc/guides/prog_guide/env_abstraction_layer.rst
3984
3985 + Legacy memory mode
3986
3987@@ -450,6 +460,31 @@ Those TLS include *_cpuset* and *_socket_id*:
3988 * *_socket_id* stores the NUMA node of the CPU set. If the CPUs in CPU set belong to different NUMA node, the *_socket_id* will be set to SOCKET_ID_ANY.
3989
3990
3991+<<<<<<< doc/guides/prog_guide/env_abstraction_layer.rst
3992+=======
3993+Control Thread API
3994+~~~~~~~~~~~~~~~~~~
3995+
3996+It is possible to create Control Threads using the public API
3997+``rte_ctrl_thread_create()``.
3998+Those threads can be used for management/infrastructure tasks and are used
3999+internally by DPDK for multi process support and interrupt handling.
4000+
4001+Those threads will be scheduled on CPUs part of the original process CPU
4002+affinity from which the dataplane and service lcores are excluded.
4003+
4004+For example, on a 8 CPUs system, starting a dpdk application with -l 2,3
4005+(dataplane cores), then depending on the affinity configuration which can be
4006+controlled with tools like taskset (Linux) or cpuset (FreeBSD),
4007+
4008+- with no affinity configuration, the Control Threads will end up on
4009+ 0-1,4-7 CPUs.
4010+- with affinity restricted to 2-4, the Control Threads will end up on
4011+ CPU 4.
4012+- with affinity restricted to 2-3, the Control Threads will end up on
4013+ CPU 2 (master lcore, which is the default when no CPU is available).
4014+
4015+>>>>>>> doc/guides/prog_guide/env_abstraction_layer.rst
4016 .. _known_issue_label:
4017
4018 Known Issues
4019@@ -635,7 +670,11 @@ The most important fields in the structure and how they are used are described b
4020
4021 Malloc heap is a doubly-linked list, where each element keeps track of its
4022 previous and next elements. Due to the fact that hugepage memory can come and
4023+<<<<<<< doc/guides/prog_guide/env_abstraction_layer.rst
4024 go, neighbouring malloc elements may not necessarily be adjacent in memory.
4025+=======
4026+go, neighboring malloc elements may not necessarily be adjacent in memory.
4027+>>>>>>> doc/guides/prog_guide/env_abstraction_layer.rst
4028 Also, since a malloc element may span multiple pages, its contents may not
4029 necessarily be IOVA-contiguous either - each malloc element is only guaranteed
4030 to be virtually contiguous.
4031diff --git a/doc/guides/prog_guide/event_ethernet_rx_adapter.rst b/doc/guides/prog_guide/event_ethernet_rx_adapter.rst
4032index 0166bb4..7e5a0f3 100644
4033--- a/doc/guides/prog_guide/event_ethernet_rx_adapter.rst
4034+++ b/doc/guides/prog_guide/event_ethernet_rx_adapter.rst
4035@@ -157,7 +157,11 @@ The servicing_weight member of struct rte_event_eth_rx_adapter_queue_conf
4036 is applicable when the adapter uses a service core function. The application
4037 has to enable Rx queue interrupts when configuring the ethernet device
4038 using the ``rte_eth_dev_configure()`` function and then use a servicing_weight
4039+<<<<<<< doc/guides/prog_guide/event_ethernet_rx_adapter.rst
4040 of zero when addding the Rx queue to the adapter.
4041+=======
4042+of zero when adding the Rx queue to the adapter.
4043+>>>>>>> doc/guides/prog_guide/event_ethernet_rx_adapter.rst
4044
4045 The adapter creates a thread blocked on the interrupt, on an interrupt this
4046 thread enqueues the port id and the queue id to a ring buffer. The adapter
4047@@ -175,9 +179,15 @@ Rx Callback for SW Rx Adapter
4048 For SW based packet transfers, i.e., when the
4049 ``RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT`` is not set in the adapter's
4050 capabilities flags for a particular ethernet device, the service function
4051+<<<<<<< doc/guides/prog_guide/event_ethernet_rx_adapter.rst
4052 temporarily enqueues mbufs to an event buffer before batch enqueueing these
4053 to the event device. If the buffer fills up, the service function stops
4054 dequeueing packets from the ethernet device. The application may want to
4055+=======
4056+temporarily enqueues mbufs to an event buffer before batch enqueuing these
4057+to the event device. If the buffer fills up, the service function stops
4058+dequeuing packets from the ethernet device. The application may want to
4059+>>>>>>> doc/guides/prog_guide/event_ethernet_rx_adapter.rst
4060 monitor the buffer fill level and instruct the service function to selectively
4061 enqueue packets to the event device. The application may also use some other
4062 criteria to decide which packets should enter the event device even when
4063diff --git a/doc/guides/prog_guide/eventdev.rst b/doc/guides/prog_guide/eventdev.rst
4064index 8fcae54..234d469 100644
4065--- a/doc/guides/prog_guide/eventdev.rst
4066+++ b/doc/guides/prog_guide/eventdev.rst
4067@@ -42,7 +42,11 @@ The rte_event structure contains the following metadata fields, which the
4068 application fills in to have the event scheduled as required:
4069
4070 * ``flow_id`` - The targeted flow identifier for the enq/deq operation.
4071+<<<<<<< doc/guides/prog_guide/eventdev.rst
4072 * ``event_type`` - The source of this event, eg RTE_EVENT_TYPE_ETHDEV or CPU.
4073+=======
4074+* ``event_type`` - The source of this event, e.g. RTE_EVENT_TYPE_ETHDEV or CPU.
4075+>>>>>>> doc/guides/prog_guide/eventdev.rst
4076 * ``sub_event_type`` - Distinguishes events inside the application, that have
4077 the same event_type (see above)
4078 * ``op`` - This field takes one of the RTE_EVENT_OP_* values, and tells the
4079@@ -265,7 +269,11 @@ Linking Queues and Ports
4080 The final step is to "wire up" the ports to the queues. After this, the
4081 eventdev is capable of scheduling events, and when cores request work to do,
4082 the correct events are provided to that core. Note that the RX core takes input
4083+<<<<<<< doc/guides/prog_guide/eventdev.rst
4084 from eg: a NIC so it is not linked to any eventdev queues.
4085+=======
4086+from e.g.: a NIC so it is not linked to any eventdev queues.
4087+>>>>>>> doc/guides/prog_guide/eventdev.rst
4088
4089 Linking all workers to atomic queues, and the TX core to the single-link queue
4090 can be achieved like this:
4091@@ -276,7 +284,11 @@ can be achieved like this:
4092 uint8_t tx_port_id = 5;
4093 uint8_t atomic_qs[] = {0, 1};
4094 uint8_t single_link_q = 2;
4095+<<<<<<< doc/guides/prog_guide/eventdev.rst
4096 uin8t_t priority = RTE_EVENT_DEV_PRIORITY_NORMAL;
4097+=======
4098+ uint8_t priority = RTE_EVENT_DEV_PRIORITY_NORMAL;
4099+>>>>>>> doc/guides/prog_guide/eventdev.rst
4100
4101 for(int worker_port_id = 1; worker_port_id <= 4; worker_port_id++) {
4102 int links_made = rte_event_port_link(dev_id, worker_port_id, atomic_qs, NULL, 2);
4103diff --git a/doc/guides/prog_guide/generic_receive_offload_lib.rst b/doc/guides/prog_guide/generic_receive_offload_lib.rst
4104index 9c6a4d0..f79d3aa 100644
4105--- a/doc/guides/prog_guide/generic_receive_offload_lib.rst
4106+++ b/doc/guides/prog_guide/generic_receive_offload_lib.rst
4107@@ -191,3 +191,25 @@ Header fields deciding if packets are neighbors include:
4108 ignore IPv4 ID fields for the packets whose DF bit is 1.
4109 Additionally, packets which have different value of DF bit can't
4110 be merged.
4111+<<<<<<< doc/guides/prog_guide/generic_receive_offload_lib.rst
4112+=======
4113+
4114+GRO Library Limitations
4115+-----------------------
4116+
4117+- GRO library uses MBUF->l2_len/l3_len/l4_len/outer_l2_len/
4118+ outer_l3_len/packet_type to get protocol headers for the
4119+ input packet, rather than parsing the packet header. Therefore,
4120+ before call GRO APIs to merge packets, user applications
4121+ must set MBUF->l2_len/l3_len/l4_len/outer_l2_len/outer_l3_len/
4122+ packet_type to the same values as the protocol headers of the
4123+ packet.
4124+
4125+- GRO library doesn't support to process the packets with IPv4
4126+ Options or VLAN tagged.
4127+
4128+- GRO library just supports to process the packet organized
4129+ in a single MBUF. If the input packet consists of multiple
4130+ MBUFs (i.e. chained MBUFs), GRO reassembly behaviors are
4131+ unknown.
4132+>>>>>>> doc/guides/prog_guide/generic_receive_offload_lib.rst
4133diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
4134index 33ea980..95fad64 100644
4135--- a/doc/guides/prog_guide/kernel_nic_interface.rst
4136+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
4137@@ -225,7 +225,11 @@ application functions:
4138
4139 ``config_promiscusity``:
4140
4141+<<<<<<< doc/guides/prog_guide/kernel_nic_interface.rst
4142 Called when the user changes the promiscusity state of the KNI
4143+=======
4144+ Called when the user changes the promiscuity state of the KNI
4145+>>>>>>> doc/guides/prog_guide/kernel_nic_interface.rst
4146 interface. For example, when the user runs ``ip link set promisc
4147 [on|off] dev <ifaceX>``. If the user sets this callback function to
4148 NULL, but sets the ``port_id`` field to a value other than -1, a default
4149diff --git a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4150index 56abee5..142c3ba 100644
4151--- a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4152+++ b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4153@@ -477,22 +477,38 @@ Create a bonded device in round robin mode with two slaves specified by their PC
4154
4155 .. code-block:: console
4156
4157+<<<<<<< doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4158 $RTE_TARGET/app/testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=0, slave=0000:00a:00.01,slave=0000:004:00.00' -- --port-topology=chained
4159+=======
4160+ $RTE_TARGET/app/testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=0,slave=0000:0a:00.01,slave=0000:04:00.00' -- --port-topology=chained
4161+>>>>>>> doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4162
4163 Create a bonded device in round robin mode with two slaves specified by their PCI address and an overriding MAC address:
4164
4165 .. code-block:: console
4166
4167+<<<<<<< doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4168 $RTE_TARGET/app/testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=0, slave=0000:00a:00.01,slave=0000:004:00.00,mac=00:1e:67:1d:fd:1d' -- --port-topology=chained
4169+=======
4170+ $RTE_TARGET/app/testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=0,slave=0000:0a:00.01,slave=0000:04:00.00,mac=00:1e:67:1d:fd:1d' -- --port-topology=chained
4171+>>>>>>> doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4172
4173 Create a bonded device in active backup mode with two slaves specified, and a primary slave specified by their PCI addresses:
4174
4175 .. code-block:: console
4176
4177+<<<<<<< doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4178 $RTE_TARGET/app/testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=1, slave=0000:00a:00.01,slave=0000:004:00.00,primary=0000:00a:00.01' -- --port-topology=chained
4179+=======
4180+ $RTE_TARGET/app/testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=1,slave=0000:0a:00.01,slave=0000:04:00.00,primary=0000:0a:00.01' -- --port-topology=chained
4181+>>>>>>> doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4182
4183 Create a bonded device in balance mode with two slaves specified by their PCI addresses, and a transmission policy of layer 3 + 4 forwarding:
4184
4185 .. code-block:: console
4186
4187+<<<<<<< doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4188 $RTE_TARGET/app/testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=2, slave=0000:00a:00.01,slave=0000:004:00.00,xmit_policy=l34' -- --port-topology=chained
4189+=======
4190+ $RTE_TARGET/app/testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=2,slave=0000:0a:00.01,slave=0000:04:00.00,xmit_policy=l34' -- --port-topology=chained
4191+>>>>>>> doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
4192diff --git a/doc/guides/prog_guide/lpm_lib.rst b/doc/guides/prog_guide/lpm_lib.rst
4193index 99563a4..794929c 100644
4194--- a/doc/guides/prog_guide/lpm_lib.rst
4195+++ b/doc/guides/prog_guide/lpm_lib.rst
4196@@ -195,4 +195,8 @@ References
4197 `http://www.ietf.org/rfc/rfc1519 <http://www.ietf.org/rfc/rfc1519>`_
4198
4199 * Pankaj Gupta, Algorithms for Routing Lookups and Packet Classification, PhD Thesis, Stanford University,
4200+<<<<<<< doc/guides/prog_guide/lpm_lib.rst
4201 2000 (`http://klamath.stanford.edu/~pankaj/thesis/ thesis_1sided.pdf <http://klamath.stanford.edu/~pankaj/thesis/%20thesis_1sided.pdf>`_ )
4202+=======
4203+ 2000 (`http://klamath.stanford.edu/~pankaj/thesis/thesis_1sided.pdf <http://klamath.stanford.edu/~pankaj/thesis/thesis_1sided.pdf>`_ )
4204+>>>>>>> doc/guides/prog_guide/lpm_lib.rst
4205diff --git a/doc/guides/prog_guide/metrics_lib.rst b/doc/guides/prog_guide/metrics_lib.rst
4206index e68e4e7..645d849 100644
4207--- a/doc/guides/prog_guide/metrics_lib.rst
4208+++ b/doc/guides/prog_guide/metrics_lib.rst
4209@@ -25,7 +25,11 @@ individual device. Since the metrics library is self-contained, the only
4210 restriction on port numbers is that they are less than ``RTE_MAX_ETHPORTS``
4211 - there is no requirement for the ports to actually exist.
4212
4213+<<<<<<< doc/guides/prog_guide/metrics_lib.rst
4214 Initialising the library
4215+=======
4216+Initializing the library
4217+>>>>>>> doc/guides/prog_guide/metrics_lib.rst
4218 ------------------------
4219
4220 Before the library can be used, it has to be initialized by calling
4221diff --git a/doc/guides/prog_guide/multi_proc_support.rst b/doc/guides/prog_guide/multi_proc_support.rst
4222index 1384fe3..f4f5aab 100644
4223--- a/doc/guides/prog_guide/multi_proc_support.rst
4224+++ b/doc/guides/prog_guide/multi_proc_support.rst
4225@@ -176,7 +176,11 @@ Some of these are documented below:
4226
4227 * The use of function pointers between multiple processes running based of different compiled binaries is not supported,
4228 since the location of a given function in one process may be different to its location in a second.
4229+<<<<<<< doc/guides/prog_guide/multi_proc_support.rst
4230 This prevents the librte_hash library from behaving properly as in a multi-threaded instance,
4231+=======
4232+ This prevents the librte_hash library from behaving properly as in a multi-process instance,
4233+>>>>>>> doc/guides/prog_guide/multi_proc_support.rst
4234 since it uses a pointer to the hash function internally.
4235
4236 To work around this issue, it is recommended that multi-process applications perform the hash calculations by directly calling
4237@@ -263,9 +267,15 @@ To send a request, a message descriptor ``rte_mp_msg`` must be populated.
4238 Additionally, a ``timespec`` value must be specified as a timeout, after which
4239 IPC will stop waiting and return.
4240
4241+<<<<<<< doc/guides/prog_guide/multi_proc_support.rst
4242 For synchronous synchronous requests, the ``rte_mp_reply`` descriptor must also
4243 be created. This is where the responses will be stored. The list of fields that
4244 will be populated by IPC are as follows:
4245+=======
4246+For synchronous requests, the ``rte_mp_reply`` descriptor must also be created.
4247+This is where the responses will be stored.
4248+The list of fields that will be populated by IPC are as follows:
4249+>>>>>>> doc/guides/prog_guide/multi_proc_support.rst
4250
4251 * ``nb_sent`` - number indicating how many requests were sent (i.e. how many
4252 peer processes were active at the time of the request).
4253@@ -273,7 +283,11 @@ will be populated by IPC are as follows:
4254 those peer processes that were active at the time of request, how many have
4255 replied)
4256 * ``msgs`` - pointer to where all of the responses are stored. The order in
4257+<<<<<<< doc/guides/prog_guide/multi_proc_support.rst
4258 which responses appear is undefined. Whendoing sycnrhonous requests, this
4259+=======
4260+ which responses appear is undefined. When doing synchronous requests, this
4261+>>>>>>> doc/guides/prog_guide/multi_proc_support.rst
4262 memory must be freed by the requestor after request completes!
4263
4264 For asynchronous requests, a function pointer to the callback function must be
4265@@ -309,6 +323,16 @@ If a response is required, a new ``rte_mp_msg`` message descriptor must be
4266 constructed and sent via ``rte_mp_reply()`` function, along with ``peer``
4267 pointer. The resulting response will then be delivered to the correct requestor.
4268
4269+<<<<<<< doc/guides/prog_guide/multi_proc_support.rst
4270+=======
4271+.. warning::
4272+ Simply returning a value when processing a request callback will not send a
4273+ response to the request - it must always be explicitly sent even in case
4274+ of errors. Implementation of error signalling rests with the application,
4275+ there is no built-in way to indicate success or error for a request. Failing
4276+ to do so will cause the requestor to time out while waiting on a response.
4277+
4278+>>>>>>> doc/guides/prog_guide/multi_proc_support.rst
4279 Misc considerations
4280 ~~~~~~~~~~~~~~~~~~~~~~~~
4281
4282@@ -318,6 +342,14 @@ supported. However, since sending messages (not requests) does not involve an
4283 IPC thread, sending messages while processing another message or request is
4284 supported.
4285
4286+<<<<<<< doc/guides/prog_guide/multi_proc_support.rst
4287+=======
4288+Since the memory sybsystem uses IPC internally, memory allocations and IPC must
4289+not be mixed: it is not safe to use IPC inside a memory-related callback, nor is
4290+it safe to allocate/free memory inside IPC callbacks. Attempting to do so may
4291+lead to a deadlock.
4292+
4293+>>>>>>> doc/guides/prog_guide/multi_proc_support.rst
4294 Asynchronous request callbacks may be triggered either from IPC thread or from
4295 interrupt thread, depending on whether the request has timed out. It is
4296 therefore suggested to avoid waiting for interrupt-based events (such as alarms)
4297diff --git a/doc/guides/prog_guide/poll_mode_drv.rst b/doc/guides/prog_guide/poll_mode_drv.rst
4298index b2cf483..73eecc4 100644
4299--- a/doc/guides/prog_guide/poll_mode_drv.rst
4300+++ b/doc/guides/prog_guide/poll_mode_drv.rst
4301@@ -374,9 +374,15 @@ parameters to those ports.
4302 this argument allows user to specify which switch ports to enable port
4303 representors for.::
4304
4305+<<<<<<< doc/guides/prog_guide/poll_mode_drv.rst
4306 -w BDBF,representor=0
4307 -w BDBF,representor=[0,4,6,9]
4308 -w BDBF,representor=[0-31]
4309+=======
4310+ -w DBDF,representor=0
4311+ -w DBDF,representor=[0,4,6,9]
4312+ -w DBDF,representor=[0-31]
4313+>>>>>>> doc/guides/prog_guide/poll_mode_drv.rst
4314
4315 Note: PMDs are not required to support the standard device arguments and users
4316 should consult the relevant PMD documentation to see support devargs.
4317diff --git a/doc/guides/prog_guide/power_man.rst b/doc/guides/prog_guide/power_man.rst
4318index 68b7e8b..3fa8a18 100644
4319--- a/doc/guides/prog_guide/power_man.rst
4320+++ b/doc/guides/prog_guide/power_man.rst
4321@@ -184,7 +184,11 @@ API Overview for Empty Poll Power Management
4322
4323 * **Update Valid Poll Counter**: update the valid poll counter.
4324
4325+<<<<<<< doc/guides/prog_guide/power_man.rst
4326 * **Set the Fequence Index**: update the power state/frequency mapping.
4327+=======
4328+* **Set the Frequency Index**: update the power state/frequency mapping.
4329+>>>>>>> doc/guides/prog_guide/power_man.rst
4330
4331 * **Detect empty poll state change**: empty poll state change detection algorithm then take action.
4332
4333@@ -195,6 +199,14 @@ The mechanism can applied to any device which is based on polling. e.g. NIC, FPG
4334 References
4335 ----------
4336
4337+<<<<<<< doc/guides/prog_guide/power_man.rst
4338 * l3fwd-power: The sample application in DPDK that performs L3 forwarding with power management.
4339
4340 * The "L3 Forwarding with Power Management Sample Application" chapter in the *DPDK Sample Application's User Guide*.
4341+=======
4342+* The :doc:`../sample_app_ug/l3_forward_power_man`
4343+ chapter in the :doc:`../sample_app_ug/index` section.
4344+
4345+* The :doc:`../sample_app_ug/vm_power_management`
4346+ chapter in the :doc:`../sample_app_ug/index` section.
4347+>>>>>>> doc/guides/prog_guide/power_man.rst
4348diff --git a/doc/guides/prog_guide/profile_app.rst b/doc/guides/prog_guide/profile_app.rst
4349index 02f0561..fa16fa6 100644
4350--- a/doc/guides/prog_guide/profile_app.rst
4351+++ b/doc/guides/prog_guide/profile_app.rst
4352@@ -64,7 +64,11 @@ The default ``cntvct_el0`` based ``rte_rdtsc()`` provides a portable means to
4353 get a wall clock counter in user space. Typically it runs at <= 100MHz.
4354
4355 The alternative method to enable ``rte_rdtsc()`` for a high resolution wall
4356+<<<<<<< doc/guides/prog_guide/profile_app.rst
4357 clock counter is through the armv8 PMU subsystem. The PMU cycle counter runs
4358+=======
4359+clock counter is through the ARMv8 PMU subsystem. The PMU cycle counter runs
4360+>>>>>>> doc/guides/prog_guide/profile_app.rst
4361 at CPU frequency. However, access to the PMU cycle counter from user space is
4362 not enabled by default in the arm64 linux kernel. It is possible to enable
4363 cycle counter for user space access by configuring the PMU from the privileged
4364@@ -75,7 +79,11 @@ scheme. Application can choose the PMU based implementation with
4365 ``CONFIG_RTE_ARM_EAL_RDTSC_USE_PMU``.
4366
4367 The example below shows the steps to configure the PMU based cycle counter on
4368+<<<<<<< doc/guides/prog_guide/profile_app.rst
4369 an armv8 machine.
4370+=======
4371+an ARMv8 machine.
4372+>>>>>>> doc/guides/prog_guide/profile_app.rst
4373
4374 .. code-block:: console
4375
4376diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
4377index c186375..c767e46 100644
4378--- a/doc/guides/prog_guide/rte_flow.rst
4379+++ b/doc/guides/prog_guide/rte_flow.rst
4380@@ -2131,7 +2131,11 @@ as defined in the ``rte_flow_action_raw_decap``
4381
4382 This action modifies the payload of matched flows. The data supplied must
4383 be a valid header, either holding layer 2 data in case of removing layer 2
4384+<<<<<<< doc/guides/prog_guide/rte_flow.rst
4385 before eincapsulation of layer 3 tunnel (for example MPLSoGRE) or complete
4386+=======
4387+before encapsulation of layer 3 tunnel (for example MPLSoGRE) or complete
4388+>>>>>>> doc/guides/prog_guide/rte_flow.rst
4389 tunnel definition starting from layer 2 and moving to the tunnel item itself.
4390 When applied to the original packet the resulting packet must be a
4391 valid packet.
4392@@ -2281,7 +2285,11 @@ Action: ``DEC_TTL``
4393 Decrease TTL value.
4394
4395 If there is no valid RTE_FLOW_ITEM_TYPE_IPV4 or RTE_FLOW_ITEM_TYPE_IPV6
4396+<<<<<<< doc/guides/prog_guide/rte_flow.rst
4397 in pattern, Some PMDs will reject rule because behaviour will be undefined.
4398+=======
4399+in pattern, Some PMDs will reject rule because behavior will be undefined.
4400+>>>>>>> doc/guides/prog_guide/rte_flow.rst
4401
4402 .. _table_rte_flow_action_dec_ttl:
4403
4404@@ -2299,7 +2307,11 @@ Action: ``SET_TTL``
4405 Assigns a new TTL value.
4406
4407 If there is no valid RTE_FLOW_ITEM_TYPE_IPV4 or RTE_FLOW_ITEM_TYPE_IPV6
4408+<<<<<<< doc/guides/prog_guide/rte_flow.rst
4409 in pattern, Some PMDs will reject rule because behaviour will be undefined.
4410+=======
4411+in pattern, Some PMDs will reject rule because behavior will be undefined.
4412+>>>>>>> doc/guides/prog_guide/rte_flow.rst
4413
4414 .. _table_rte_flow_action_set_ttl:
4415
4416@@ -2314,7 +2326,14 @@ in pattern, Some PMDs will reject rule because behaviour will be undefined.
4417 Action: ``SET_MAC_SRC``
4418 ^^^^^^^^^^^^^^^^^^^^^^^
4419
4420+<<<<<<< doc/guides/prog_guide/rte_flow.rst
4421 Set source MAC address
4422+=======
4423+Set source MAC address.
4424+
4425+It must be used with a valid RTE_FLOW_ITEM_TYPE_ETH flow pattern item.
4426+Otherwise, RTE_FLOW_ERROR_TYPE_ACTION error will be returned.
4427+>>>>>>> doc/guides/prog_guide/rte_flow.rst
4428
4429 .. _table_rte_flow_action_set_mac_src:
4430
4431@@ -2329,7 +2348,14 @@ Set source MAC address
4432 Action: ``SET_MAC_DST``
4433 ^^^^^^^^^^^^^^^^^^^^^^^
4434
4435+<<<<<<< doc/guides/prog_guide/rte_flow.rst
4436 Set source MAC address
4437+=======
4438+Set destination MAC address.
4439+
4440+It must be used with a valid RTE_FLOW_ITEM_TYPE_ETH flow pattern item.
4441+Otherwise, RTE_FLOW_ERROR_TYPE_ACTION error will be returned.
4442+>>>>>>> doc/guides/prog_guide/rte_flow.rst
4443
4444 .. _table_rte_flow_action_set_mac_dst:
4445
4446@@ -2719,7 +2745,11 @@ Caveats
4447 - API operations are synchronous and blocking (``EAGAIN`` cannot be
4448 returned).
4449
4450+<<<<<<< doc/guides/prog_guide/rte_flow.rst
4451 - There is no provision for reentrancy/multi-thread safety, although nothing
4452+=======
4453+- There is no provision for re-entrancy/multi-thread safety, although nothing
4454+>>>>>>> doc/guides/prog_guide/rte_flow.rst
4455 should prevent different devices from being configured at the same
4456 time. PMDs may protect their control path functions accordingly.
4457
4458diff --git a/doc/guides/prog_guide/rte_security.rst b/doc/guides/prog_guide/rte_security.rst
4459index cb70caa..f0fd2f0 100644
4460--- a/doc/guides/prog_guide/rte_security.rst
4461+++ b/doc/guides/prog_guide/rte_security.rst
4462@@ -40,7 +40,11 @@ Inline Crypto
4463 ~~~~~~~~~~~~~
4464
4465 RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO:
4466+<<<<<<< doc/guides/prog_guide/rte_security.rst
4467 The crypto processing for security protocol (e.g. IPSec) is processed
4468+=======
4469+The crypto processing for security protocol (e.g. IPsec) is processed
4470+>>>>>>> doc/guides/prog_guide/rte_security.rst
4471 inline during receive and transmission on NIC port. The flow based
4472 security action should be configured on the port.
4473
4474@@ -48,7 +52,11 @@ Ingress Data path - The packet is decrypted in RX path and relevant
4475 crypto status is set in Rx descriptors. After the successful inline
4476 crypto processing the packet is presented to host as a regular Rx packet
4477 however all security protocol related headers are still attached to the
4478+<<<<<<< doc/guides/prog_guide/rte_security.rst
4479 packet. e.g. In case of IPSec, the IPSec tunnel headers (if any),
4480+=======
4481+packet. e.g. In case of IPsec, the IPsec tunnel headers (if any),
4482+>>>>>>> doc/guides/prog_guide/rte_security.rst
4483 ESP/AH headers will remain in the packet but the received packet
4484 contains the decrypted data where the encrypted data was when the packet
4485 arrived. The driver Rx path check the descriptors and and based on the
4486@@ -111,7 +119,11 @@ Inline protocol offload
4487 ~~~~~~~~~~~~~~~~~~~~~~~
4488
4489 RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL:
4490+<<<<<<< doc/guides/prog_guide/rte_security.rst
4491 The crypto and protocol processing for security protocol (e.g. IPSec)
4492+=======
4493+The crypto and protocol processing for security protocol (e.g. IPsec)
4494+>>>>>>> doc/guides/prog_guide/rte_security.rst
4495 is processed inline during receive and transmission. The flow based
4496 security action should be configured on the port.
4497
4498@@ -119,7 +131,11 @@ Ingress Data path - The packet is decrypted in the RX path and relevant
4499 crypto status is set in the Rx descriptors. After the successful inline
4500 crypto processing the packet is presented to the host as a regular Rx packet
4501 but all security protocol related headers are optionally removed from the
4502+<<<<<<< doc/guides/prog_guide/rte_security.rst
4503 packet. e.g. in the case of IPSec, the IPSec tunnel headers (if any),
4504+=======
4505+packet. e.g. in the case of IPsec, the IPsec tunnel headers (if any),
4506+>>>>>>> doc/guides/prog_guide/rte_security.rst
4507 ESP/AH headers will be removed from the packet and the received packet
4508 will contains the decrypted packet only. The driver Rx path checks the
4509 descriptors and based on the crypto status sets additional flags in
4510@@ -132,7 +148,11 @@ to identify the security processing done on the packet.
4511 The underlying device in this case is stateful. It is expected that
4512 the device shall support crypto processing for all kind of packets matching
4513 to a given flow, this includes fragmented packets (post reassembly).
4514+<<<<<<< doc/guides/prog_guide/rte_security.rst
4515 E.g. in case of IPSec the device may internally manage anti-replay etc.
4516+=======
4517+ E.g. in case of IPsec the device may internally manage anti-replay etc.
4518+>>>>>>> doc/guides/prog_guide/rte_security.rst
4519 It will provide a configuration option for anti-replay behavior i.e. to drop
4520 the packets or pass them to driver with error flags set in the descriptor.
4521
4522@@ -150,7 +170,11 @@ to cross the MTU size.
4523 .. note::
4524
4525 The underlying device will manage state information required for egress
4526+<<<<<<< doc/guides/prog_guide/rte_security.rst
4527 processing. E.g. in case of IPSec, the seq number will be added to the
4528+=======
4529+ processing. E.g. in case of IPsec, the seq number will be added to the
4530+>>>>>>> doc/guides/prog_guide/rte_security.rst
4531 packet, however the device shall provide indication when the sequence number
4532 is about to overflow. The underlying device may support post encryption TSO.
4533
4534@@ -199,13 +223,21 @@ crypto device.
4535 Decryption: The packet is sent to the crypto device for security
4536 protocol processing. The device will decrypt the packet and it will also
4537 optionally remove additional security headers from the packet.
4538+<<<<<<< doc/guides/prog_guide/rte_security.rst
4539 E.g. in case of IPSec, IPSec tunnel headers (if any), ESP/AH headers
4540+=======
4541+E.g. in case of IPsec, IPsec tunnel headers (if any), ESP/AH headers
4542+>>>>>>> doc/guides/prog_guide/rte_security.rst
4543 will be removed from the packet and the decrypted packet may contain
4544 plain data only.
4545
4546 .. note::
4547
4548+<<<<<<< doc/guides/prog_guide/rte_security.rst
4549 In case of IPSec the device may internally manage anti-replay etc.
4550+=======
4551+ In case of IPsec the device may internally manage anti-replay etc.
4552+>>>>>>> doc/guides/prog_guide/rte_security.rst
4553 It will provide a configuration option for anti-replay behavior i.e. to drop
4554 the packets or pass them to driver with error flags set in descriptor.
4555
4556@@ -217,7 +249,11 @@ for any protocol header addition.
4557
4558 .. note::
4559
4560+<<<<<<< doc/guides/prog_guide/rte_security.rst
4561 In the case of IPSec, the seq number will be added to the packet,
4562+=======
4563+ In the case of IPsec, the seq number will be added to the packet,
4564+>>>>>>> doc/guides/prog_guide/rte_security.rst
4565 It shall provide an indication when the sequence number is about to
4566 overflow.
4567
4568@@ -549,7 +585,11 @@ IPsec related configuration parameters are defined in ``rte_security_ipsec_xform
4569 struct rte_security_ipsec_sa_options options;
4570 /**< various SA options */
4571 enum rte_security_ipsec_sa_direction direction;
4572+<<<<<<< doc/guides/prog_guide/rte_security.rst
4573 /**< IPSec SA Direction - Egress/Ingress */
4574+=======
4575+ /**< IPsec SA Direction - Egress/Ingress */
4576+>>>>>>> doc/guides/prog_guide/rte_security.rst
4577 enum rte_security_ipsec_sa_protocol proto;
4578 /**< IPsec SA Protocol - AH/ESP */
4579 enum rte_security_ipsec_sa_mode mode;
4580diff --git a/doc/guides/prog_guide/traffic_management.rst b/doc/guides/prog_guide/traffic_management.rst
4581index 98ac431..54c4550 100644
4582--- a/doc/guides/prog_guide/traffic_management.rst
4583+++ b/doc/guides/prog_guide/traffic_management.rst
4584@@ -39,7 +39,11 @@ whether a specific implementation does meet the needs to the user application.
4585 At the TM level, users can get high level idea with the help of various
4586 parameters such as maximum number of nodes, maximum number of hierarchical
4587 levels, maximum number of shapers, maximum number of private shapers, type of
4588+<<<<<<< doc/guides/prog_guide/traffic_management.rst
4589 scheduling algorithm (Strict Priority, Weighted Fair Queueing , etc.), etc.,
4590+=======
4591+scheduling algorithm (Strict Priority, Weighted Fair Queuing , etc.), etc.,
4592+>>>>>>> doc/guides/prog_guide/traffic_management.rst
4593 supported by the implementation.
4594
4595 Likewise, users can query the capability of the TM at the hierarchical level to
4596diff --git a/doc/guides/prog_guide/vhost_lib.rst b/doc/guides/prog_guide/vhost_lib.rst
4597index c77df33..a573191 100644
4598--- a/doc/guides/prog_guide/vhost_lib.rst
4599+++ b/doc/guides/prog_guide/vhost_lib.rst
4600@@ -63,7 +63,11 @@ The following is an overview of some key Vhost API functions:
4601 512).
4602
4603 * zero copy is really good for VM2VM case. For iperf between two VMs, the
4604+<<<<<<< doc/guides/prog_guide/vhost_lib.rst
4605 boost could be above 70% (when TSO is enableld).
4606+=======
4607+ boost could be above 70% (when TSO is enabled).
4608+>>>>>>> doc/guides/prog_guide/vhost_lib.rst
4609
4610 * For zero copy in VM2NIC case, guest Tx used vring may be starved if the
4611 PMD driver consume the mbuf but not release them timely.
4612diff --git a/doc/guides/rawdevs/ifpga_rawdev.rst b/doc/guides/rawdevs/ifpga_rawdev.rst
4613index d400db6..8e5aa0d 100644
4614--- a/doc/guides/rawdevs/ifpga_rawdev.rst
4615+++ b/doc/guides/rawdevs/ifpga_rawdev.rst
4616@@ -91,7 +91,11 @@ Run-time parameters
4617 -------------------
4618
4619 This driver is invoked automatically in systems added with Intel FPGA,
4620+<<<<<<< doc/guides/rawdevs/ifpga_rawdev.rst
4621 but PR and IFPGA Bus scan is trigged by command line using
4622+=======
4623+but PR and IFPGA Bus scan is triggered by command line using
4624+>>>>>>> doc/guides/rawdevs/ifpga_rawdev.rst
4625 ``--vdev 'ifpga_rawdev_cfg`` EAL option.
4626
4627 The following device parameters are supported:
4628diff --git a/doc/guides/rel_notes/known_issues.rst b/doc/guides/rel_notes/known_issues.rst
4629index a1face9..01c10f3 100644
4630--- a/doc/guides/rel_notes/known_issues.rst
4631+++ b/doc/guides/rel_notes/known_issues.rst
4632@@ -676,7 +676,11 @@ igb uio legacy mode can not be used in X710/XL710/XXV710
4633
4634 **Description**:
4635 X710/XL710/XXV710 NICs lack support for indicating INTx is asserted via the interrupt
4636+<<<<<<< doc/guides/rel_notes/known_issues.rst
4637 bit in the PCI status register. Linux delected them from INTx support table. The related
4638+=======
4639+ bit in the PCI status register. Linux deleted them from INTx support table. The related
4640+>>>>>>> doc/guides/rel_notes/known_issues.rst
4641 `commit <https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/drivers/pci/quirks.c?id=8bcf4525c5d43306c5fd07e132bc8650e3491aec>`_.
4642
4643 **Implication**:
4644@@ -722,9 +726,15 @@ Linux kernel 4.10.0 iommu attribute read error
4645 **Description**:
4646 When VT-d is enabled (``iommu=pt intel_iommu=on``), reading IOMMU attributes from
4647 /sys/devices/virtual/iommu/dmarXXX/intel-iommu/cap on Linux kernel 4.10.0 error.
4648+<<<<<<< doc/guides/rel_notes/known_issues.rst
4649 This bug is fixed in `Linux commmit a7fdb6e648fb
4650 <https://patchwork.kernel.org/patch/9595727/>`_,
4651 This bug is introduced in `Linux commmit 39ab9555c241
4652+=======
4653+ This bug is fixed in `Linux commit a7fdb6e648fb
4654+ <https://patchwork.kernel.org/patch/9595727/>`_,
4655+ This bug is introduced in `Linux commit 39ab9555c241
4656+>>>>>>> doc/guides/rel_notes/known_issues.rst
4657 <https://patchwork.kernel.org/patch/9554403/>`_,
4658
4659 **Implication**:
4660@@ -826,3 +836,41 @@ Kernel crash when hot-unplug igb_uio device while DPDK application is running
4661
4662 **Driver/Module**:
4663 ``igb_uio`` module.
4664+<<<<<<< doc/guides/rel_notes/known_issues.rst
4665+=======
4666+
4667+
4668+AVX-512 support disabled
4669+------------------------
4670+
4671+**Description**:
4672+ ``AVX-512`` support has been disabled on some conditions.
4673+ This shouldn't be confused with ``CONFIG_RTE_ENABLE_AVX512`` config option which is already
4674+ disabled by default. This config option defines if ``AVX-512`` specific implementations of
4675+ some file to be used or not. What has been disabled is compiler feature to produce ``AVX-512``
4676+ instructions from any source code.
4677+
4678+ On DPDK v18.11 ``AVX-512`` is disabled for all ``GCC`` builds which reported to cause a performance
4679+ drop.
4680+
4681+ On DPDK v19.02 ``AVX-512`` disable scope is reduced to ``GCC`` and ``binutils version 2.30`` based
4682+ on information accrued from the GCC community defect.
4683+
4684+**Reason**:
4685+ Generated ``AVX-512`` code cause crash:
4686+ https://bugs.dpdk.org/show_bug.cgi?id=97
4687+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88096
4688+
4689+**Resolution/Workaround**:
4690+ * Update ``binutils`` to newer version than ``2.30``.
4691+
4692+ OR
4693+
4694+ * Use different compiler, like ``clang`` for this case.
4695+
4696+**Affected Environment/Platform**:
4697+ ``GCC`` and ``binutils version 2.30``.
4698+
4699+**Driver/Module**:
4700+ ALL.
4701+>>>>>>> doc/guides/rel_notes/known_issues.rst
4702diff --git a/doc/guides/rel_notes/release_17_11.rst b/doc/guides/rel_notes/release_17_11.rst
4703index 2a93af3..da39952 100644
4704--- a/doc/guides/rel_notes/release_17_11.rst
4705+++ b/doc/guides/rel_notes/release_17_11.rst
4706@@ -168,7 +168,11 @@ New Features
4707 * The DES CBC algorithm.
4708 * The DES DOCSIS BPI algorithm.
4709
4710+<<<<<<< doc/guides/rel_notes/release_17_11.rst
4711 This change requires version 0.47 of the IPSec Multi-buffer library. For
4712+=======
4713+ This change requires version 0.47 of the IPsec Multi-buffer library. For
4714+>>>>>>> doc/guides/rel_notes/release_17_11.rst
4715 more details see the :doc:`../cryptodevs/aesni_mb` documentation.
4716
4717 * **Updated the OpenSSL PMD.**
4718@@ -198,7 +202,11 @@ New Features
4719 * **Added the Security Offload Library.**
4720
4721 Added an experimental library - ``rte_security``. This provide security APIs
4722+<<<<<<< doc/guides/rel_notes/release_17_11.rst
4723 for protocols like IPSec using inline ipsec offload to ethernet devices or
4724+=======
4725+ for protocols like IPsec using inline ipsec offload to ethernet devices or
4726+>>>>>>> doc/guides/rel_notes/release_17_11.rst
4727 full protocol offload with lookaside crypto devices.
4728
4729 See the :doc:`../prog_guide/rte_security` section of the DPDK Programmers
4730@@ -207,11 +215,19 @@ New Features
4731 * **Updated the DPAA2_SEC crypto driver to support rte_security.**
4732
4733 Updated the ``dpaa2_sec`` crypto PMD to support ``rte_security`` lookaside
4734+<<<<<<< doc/guides/rel_notes/release_17_11.rst
4735 protocol offload for IPSec.
4736
4737 * **Updated the IXGBE ethernet driver to support rte_security.**
4738
4739 Updated ixgbe ethernet PMD to support ``rte_security`` inline IPSec offload.
4740+=======
4741+ protocol offload for IPsec.
4742+
4743+* **Updated the IXGBE ethernet driver to support rte_security.**
4744+
4745+ Updated ixgbe ethernet PMD to support ``rte_security`` inline IPsec offload.
4746+>>>>>>> doc/guides/rel_notes/release_17_11.rst
4747
4748 * **Updated i40e driver to support GTP-C/GTP-U.**
4749
4750@@ -509,7 +525,11 @@ ABI Changes
4751 * **New parameter added to rte_eth_dev.**
4752
4753 A new parameter ``security_ctx`` has been added to ``rte_eth_dev`` to
4754+<<<<<<< doc/guides/rel_notes/release_17_11.rst
4755 support security operations like IPSec inline.
4756+=======
4757+ support security operations like IPsec inline.
4758+>>>>>>> doc/guides/rel_notes/release_17_11.rst
4759
4760 * **New parameter added to rte_cryptodev.**
4761
4762diff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst
4763index 65bab55..7a5b91e 100644
4764--- a/doc/guides/rel_notes/release_18_11.rst
4765+++ b/doc/guides/rel_notes/release_18_11.rst
4766@@ -861,3 +861,833 @@ Tested Platforms
4767
4768 * Ubuntu 18.04.1 LTS with NXP QorIQ LSDK 1809 support packages
4769 * Ubuntu 16.04.3 LTS with NXP QorIQ LSDK 1803 support packages
4770+<<<<<<< doc/guides/rel_notes/release_18_11.rst
4771+=======
4772+
4773+18.11.1 Release Notes
4774+----------------------
4775+
4776+18.11.1 Fixes
4777+~~~~~~~~~~~~~
4778+
4779+* app/bbdev: fix return value check
4780+* app/eventdev: detect deadlock for timer event producer
4781+* app/pdump: fix vdev cleanup
4782+* app/testpmd: expand RED queue thresholds to 64 bits
4783+* app/testpmd: fix MPLS BoS bit default value
4784+* app/testpmd: fix MPLSoGRE encapsulation
4785+* app/testpmd: fix MPLSoUDP encapsulation
4786+* app/testpmd: fix quit to stop all ports before close
4787+* app/testpmd: fix Tx metadata show command
4788+* bb/turbo_sw: fix dynamic linking
4789+* build: fix meson check for binutils 2.30
4790+* build: fix variable name in dependency error message
4791+* build: mention -march in pkg-config description
4792+* build: use static deps for pkg-config libs.private
4793+* bus/dpaa: do nothing if bus not present
4794+* bus/dpaa: fix logical to physical core affine logic
4795+* bus/fslmc: fix parse method for bus devices
4796+* bus/fslmc: fix ring mode to use correct cache settings
4797+* bus/fslmc: fix to convert error msg to warning
4798+* bus/fslmc: fix to reset portal memory before use
4799+* bus/fslmc: fix to use correct physical core for logical core
4800+* bus/ifpga: fix AFU probe failure handler
4801+* bus/ifpga: fix build for cpp applications
4802+* bus/ifpga: fix forcing optional devargs
4803+* bus/vmbus: fix race in subchannel creation
4804+* common/qat: remove check of valid firmware response
4805+* compressdev: fix structure comment
4806+* compress/qat: fix dequeue error counter
4807+* compress/qat: fix returned status on overflow
4808+* compress/qat: fix return on building request error
4809+* config: enable C11 memory model for armv8 with meson
4810+* crypto/dpaa2_sec: fix FLC address for physical mode
4811+* crypto/qat: fix block size error handling
4812+* crypto/qat: fix digest in wireless auth case
4813+* crypto/qat: fix message for CCM when setting unused counter
4814+* crypto/qat: fix message for NULL algo setting unused counter
4815+* devtools: fix build check for whether meson has run
4816+* devtools: fix return of forbidden addition checks
4817+* devtools: fix symbol check when adding experimental section
4818+* devtools: fix wrong headline lowercase for arm
4819+* doc: add dependency for PDF in contributing guide
4820+* doc: add GCM AAD limitation in qat guide
4821+* doc: add GRO limitations in programmers guide
4822+* doc: add missing loopback option in testpmd guide
4823+* doc: clarify libnuma requirement for NUMA systems
4824+* doc: fix AESNI_MB guide
4825+* doc: fix a parameter name in testpmd guide
4826+* doc: fix a typo in power management guide
4827+* doc: fix a typo in testpmd guide
4828+* doc: fix a typo in testpmd guide
4829+* doc: fix flow action command names in testpmd guide
4830+* doc: fix garbage text in generated HTML guides
4831+* doc: fix ifc naming
4832+* doc: fix MAC address rewrite actions in prog guide
4833+* doc: fix references in power management guide
4834+* doc: remove note on memory mode limitation in multi-process
4835+* drivers/crypto: fix PMDs memory leak
4836+* drivers: fix sprintf with snprintf
4837+* drivers/net: fix several Tx prepare functions
4838+* eal/bsd: remove clean up of files at startup
4839+* eal: check string parameter lengths
4840+* eal: clean up unused files on initialization
4841+* eal: close multi-process socket during cleanup
4842+* eal: fix build of external app with clang on armv8
4843+* eal: fix clang build with intrinsics forced
4844+* eal: fix core number validation
4845+* eal: fix detection of duplicate option register
4846+* eal: fix leak on multi-process request error
4847+* eal: fix log level of error in option register
4848+* eal: fix missing newline in a log
4849+* eal: fix out of bound access when no CPU available
4850+* eal: fix strdup usages in internal config
4851+* eal/linux: fix parsing zero socket memory and limits
4852+* efd: fix tail queue leak
4853+* ethdev: declare Tx prepare API as not experimental
4854+* ethdev: fix errno to have positive value
4855+* ethdev: fix typo in queue setup error log
4856+* eventdev: fix error log in eth Rx adapter
4857+* eventdev: fix eth Tx adapter queue count checks
4858+* eventdev: fix xstats documentation typo
4859+* eventdev: remove redundant timer adapter function prototypes
4860+* examples/bond: fix crash when there is no active slave
4861+* examples/bond: fix initialization order
4862+* examples/flow_filtering: fix example documentation
4863+* examples/ipsec-secgw: fix crypto-op might never get dequeued
4864+* examples/ipsec-secgw: fix inbound SA checking
4865+* examples/ipsec-secgw: fix outbound codepath for single SA
4866+* examples/ipsec-secgw: make local variables static
4867+* examples/kni: fix crash while handling userspace request
4868+* examples/tep_term: remove unused constant
4869+* examples/vhost_crypto: fix bracket
4870+* examples/vhost: fix a typo
4871+* examples/vhost: fix path allocation failure handling
4872+* gro: check invalid TCP header length
4873+* gro: fix overflow of payload length calculation
4874+* gso: fix VxLAN/GRE tunnel checks
4875+* hash: fix out-of-bound write while freeing key slot
4876+* hash: fix return of bulk lookup
4877+* ip_frag: fix IPv6 when MTU sizes not aligned to 8 bytes
4878+* kni: fix build for dev_open in Linux 5.0
4879+* kni: fix build for igb_ndo_bridge_setlink in Linux 5.0
4880+* kni: fix build on RHEL 8
4881+* kni: fix build on RHEL8 for arm and Power9
4882+* malloc: fix deadlock when reading stats
4883+* malloc: fix duplicate mem event notification
4884+* malloc: fix finding maximum contiguous IOVA size
4885+* malloc: make alignment requirements more stringent
4886+* malloc: notify primary process about hotplug in secondary
4887+* mem: check for memfd support in segment fd API
4888+* mem: fix segment fd API error code for external segment
4889+* mem: fix storing old policy
4890+* mem: fix variable shadowing
4891+* memzone: fix unlock on initialization failure
4892+* mk: do not install meson.build in usertools
4893+* mk: fix scope of disabling AVX512F support
4894+* net/af_packet: fix setting MTU decrements sockaddr twice
4895+* net/avf/base: fix comment referencing internal data
4896+* net/bnx2x: cleanup info logs
4897+* net/bnx2x: fix segfaults due to stale interrupt status
4898+* net/bonding: fix possible null pointer reference
4899+* net/bonding: fix reset active slave
4900+* net/cxgbe: fix control queue mbuf pool naming convention
4901+* net/cxgbe: fix overlapping regions in TID table
4902+* net/cxgbe: skip parsing match items with no spec
4903+* net/dpaa2: fix bad check for not-null
4904+* net/dpaa2: fix device init for secondary process
4905+* net/dpaa: fix secondary process
4906+* net/ena: add reset reason in Rx error
4907+* net/ena: add supported RSS offloads types
4908+* net/ena: destroy queues if start failed
4909+* net/ena: do not reconfigure queues on reset
4910+* net/ena: fix cleanup for out of order packets
4911+* net/ena: fix dev init with multi-process
4912+* net/ena: fix errno to positive value
4913+* net/ena: fix invalid reference to variable in union
4914+* net/ena: skip packet with wrong request id
4915+* net/ena: update completion queue after cleanup
4916+* net/enic: remove useless include
4917+* net: fix underflow for checksum of invalid IPv4 packets
4918+* net/fm10k: fix internal switch initial status
4919+* net/i40e: clear VF reset flags after reset
4920+* net/i40e: fix config name in comment
4921+* net/i40e: fix get RSS conf
4922+* net/i40e: fix getting RSS configuration
4923+* net/i40e: fix overwriting RSS RETA
4924+* net/i40e: fix port close
4925+* net/i40e: fix queue region DCB configure
4926+* net/i40e: fix statistics
4927+* net/i40e: fix statistics inconsistency
4928+* net/i40e: fix using recovery mode firmware
4929+* net/i40e: fix VF overwrite PF RSS LUT for X722
4930+* net/i40e: perform basic validation on VF messages
4931+* net/i40e: remove redundant reset of queue number
4932+* net/i40e: revert fix offload not supported mask
4933+* net/ifc: store only registered device instance
4934+* net/ifcvf: fix typo on struct name
4935+* net/igb: fix LSC interrupt when using MSI-X
4936+* net/ixgbe/base: add LHA ID
4937+* net/ixgbe: fix crash on remove
4938+* net/ixgbe: fix over using multicast table for VF
4939+* net/ixgbe: fix overwriting RSS RETA
4940+* net/ixgbe: fix Rx LRO capability offload for x550
4941+* net/mlx5: fix build for armv8
4942+* net/mlx5: fix deprecated library API for Rx padding
4943+* net/mlx5: fix function documentation
4944+* net/mlx5: fix instruction hotspot on replenishing Rx buffer
4945+* net/mlx5: fix Multi-Packet RQ mempool free
4946+* net/mlx5: fix Rx packet padding
4947+* net/mlx5: fix shared counter allocation logic
4948+* net/mlx5: fix TC rule handle assignment
4949+* net/mlx5: fix typos and code style
4950+* net/mlx5: fix validation of Rx queue number
4951+* net/mlx5: fix VXLAN port registration race condition
4952+* net/mlx5: fix VXLAN without decap action for E-Switch
4953+* net/mlx5: remove checks for outer tunnel items on E-Switch
4954+* net/mlx5: support ethernet type for tunnels on E-Switch
4955+* net/mlx5: support tunnel inner items on E-Switch
4956+* net/mlx5: validate ethernet type on E-Switch
4957+* net/mlx5: validate tunnel inner items on E-Switch
4958+* net/netvsc: disable multi-queue on older servers
4959+* net/netvsc: enable SR-IOV
4960+* net/netvsc: fix probe when VF not found
4961+* net/netvsc: fix transmit descriptor pool cleanup
4962+* net/qede: fix performance bottleneck in Rx path
4963+* net/qede: remove prefetch in Tx path
4964+* net/sfc: add missing header guard to TSO header file
4965+* net/sfc/base: fix Tx descriptor max number check
4966+* net/sfc: discard last seen VLAN TCI if Tx packet is dropped
4967+* net/sfc: fix crash in EF10 TSO if no payload
4968+* net/sfc: fix datapath name references in logs
4969+* net/sfc: fix port ID log
4970+* net/sfc: fix Rx packets counter
4971+* net/sfc: fix typo in preprocessor check
4972+* net/sfc: fix VF error/missed stats mapping
4973+* net/sfc: pass HW Tx queue index on creation
4974+* net/tap: add buffer overflow checks before checksum
4975+* net/tap: allow full length names
4976+* net/tap: fix possible uninitialized variable access
4977+* net/tap: let kernel choose tun device name
4978+* net/vhost: fix double free of MAC address
4979+* net/virtio: add barrier before reading the flags
4980+* net/virtio-user: fix used ring in cvq handling
4981+* raw/ifpga: fix memory leak
4982+* Revert "net/mlx5: fix instruction hotspot on replenishing Rx buffer"
4983+* sched: fix memory leak on init failure
4984+* telemetry: fix using ports of different types
4985+* test: check zero socket memory as valid
4986+* test/crypto: fix misleading trace message
4987+* test/fbarray: add to meson
4988+* test/hash: fix perf result
4989+* test/mem: add external mem autotest to meson
4990+* test/metrics: fix a negative case
4991+* timer: fix race condition
4992+* version: 18.11.1-rc1
4993+* version: 18.11.1-rc2
4994+* vfio: allow secondary process to query IOMMU type
4995+* vfio: do not unregister callback in secondary process
4996+* vfio: fix error message
4997+* vhost/crypto: fix possible dead loop
4998+* vhost/crypto: fix possible out of bound access
4999+* vhost: enforce avail index and desc read ordering
5000+* vhost: enforce desc flags and content read ordering
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches