[dpdk-dev,2/4] Provide initial versioning for all DPDK libraries
Commit Message
Add linker version script files to each DPDK library to put a stake in the
ground from which we can start cleaning up API's
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
CC: Thomas Monjalon <thomas.monjalon@6wind.com>
CC: "Richardson, Bruce" <bruce.richardson@intel.com>
---
lib/librte_acl/Makefile | 2 +
lib/librte_acl/rte_acl_version.map | 19 ++++
lib/librte_cfgfile/Makefile | 2 +
lib/librte_cfgfile/rte_cfgfile_version.map | 14 +++
lib/librte_cmdline/Makefile | 2 +
lib/librte_cmdline/rte_cmdline_version.map | 69 +++++++++++++
lib/librte_distributor/Makefile | 2 +
lib/librte_distributor/rte_distributor_version.map | 16 +++
lib/librte_eal/bsdapp/eal/Makefile | 2 +
lib/librte_eal/bsdapp/eal/rte_eal_version.map | 89 +++++++++++++++++
lib/librte_eal/linuxapp/eal/Makefile | 2 +
lib/librte_eal/linuxapp/eal/rte_eal_version.map | 89 +++++++++++++++++
lib/librte_ether/Makefile | 2 +
lib/librte_ether/rte_ether_version.map | 108 +++++++++++++++++++++
lib/librte_hash/Makefile | 2 +
lib/librte_hash/rte_hash_version.map | 18 ++++
lib/librte_ip_frag/Makefile | 2 +
lib/librte_ip_frag/rte_ipfrag_version.map | 14 +++
lib/librte_ivshmem/Makefile | 2 +
lib/librte_ivshmem/rte_ivshmem_version.map | 13 +++
lib/librte_kni/Makefile | 2 +
lib/librte_kni/rte_kni_version.map | 19 ++++
lib/librte_kvargs/Makefile | 2 +
lib/librte_kvargs/rte_kvargs_version.map | 10 ++
lib/librte_lpm/Makefile | 2 +
lib/librte_lpm/rte_lpm_version.map | 24 +++++
lib/librte_malloc/Makefile | 2 +
lib/librte_malloc/rte_malloc_version.map | 19 ++++
lib/librte_mbuf/Makefile | 2 +
lib/librte_mbuf/rte_mbuf_version.map | 12 +++
lib/librte_mempool/Makefile | 2 +
lib/librte_mempool/rte_mempool_version.map | 18 ++++
lib/librte_meter/Makefile | 2 +
lib/librte_meter/rte_meter_version.map | 13 +++
lib/librte_pipeline/Makefile | 2 +
lib/librte_pipeline/rte_pipeline_version.map | 23 +++++
lib/librte_pmd_bond/Makefile | 2 +
lib/librte_pmd_bond/rte_eth_bond_version.map | 20 ++++
lib/librte_pmd_e1000/Makefile | 2 +
lib/librte_pmd_e1000/rte_pmd_e1000_version.map | 5 +
lib/librte_pmd_i40e/Makefile | 2 +
lib/librte_pmd_i40e/rte_pmd_i40e_version.map | 5 +
lib/librte_pmd_ixgbe/Makefile | 2 +
lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map | 5 +
lib/librte_pmd_pcap/Makefile | 2 +
lib/librte_pmd_pcap/rte_pmd_pcap_version.map | 5 +
lib/librte_pmd_ring/Makefile | 2 +
lib/librte_pmd_ring/rte_eth_ring.c | 2 +-
lib/librte_pmd_ring/rte_eth_ring.h | 6 --
lib/librte_pmd_ring/rte_eth_ring_version.map | 10 ++
lib/librte_pmd_virtio/Makefile | 1 +
lib/librte_pmd_virtio/rte_pmd_virtio_version.map | 5 +
lib/librte_pmd_vmxnet3/Makefile | 2 +
lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map | 5 +
lib/librte_pmd_xenvirt/Makefile | 2 +
lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map | 8 ++
lib/librte_port/Makefile | 2 +
lib/librte_port/rte_port_version.map | 18 ++++
lib/librte_power/Makefile | 2 +
lib/librte_power/rte_power_version.map | 14 +++
lib/librte_ring/Makefile | 2 +
lib/librte_ring/rte_ring_version.map | 12 +++
lib/librte_sched/Makefile | 2 +
lib/librte_sched/rte_sched_version.map | 22 +++++
lib/librte_table/Makefile | 2 +
lib/librte_table/rte_table_version.map | 22 +++++
lib/librte_timer/Makefile | 2 +
lib/librte_timer/rte_timer_version.map | 16 +++
68 files changed, 825 insertions(+), 7 deletions(-)
create mode 100644 lib/librte_acl/rte_acl_version.map
create mode 100644 lib/librte_cfgfile/rte_cfgfile_version.map
create mode 100644 lib/librte_cmdline/rte_cmdline_version.map
create mode 100644 lib/librte_distributor/rte_distributor_version.map
create mode 100644 lib/librte_eal/bsdapp/eal/rte_eal_version.map
create mode 100644 lib/librte_eal/linuxapp/eal/rte_eal_version.map
create mode 100644 lib/librte_ether/rte_ether_version.map
create mode 100644 lib/librte_hash/rte_hash_version.map
create mode 100644 lib/librte_ip_frag/rte_ipfrag_version.map
create mode 100644 lib/librte_ivshmem/rte_ivshmem_version.map
create mode 100644 lib/librte_kni/rte_kni_version.map
create mode 100644 lib/librte_kvargs/rte_kvargs_version.map
create mode 100644 lib/librte_lpm/rte_lpm_version.map
create mode 100644 lib/librte_malloc/rte_malloc_version.map
create mode 100644 lib/librte_mbuf/rte_mbuf_version.map
create mode 100644 lib/librte_mempool/rte_mempool_version.map
create mode 100644 lib/librte_meter/rte_meter_version.map
create mode 100644 lib/librte_pipeline/rte_pipeline_version.map
create mode 100644 lib/librte_pmd_bond/rte_eth_bond_version.map
create mode 100644 lib/librte_pmd_e1000/rte_pmd_e1000_version.map
create mode 100644 lib/librte_pmd_i40e/rte_pmd_i40e_version.map
create mode 100644 lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
create mode 100644 lib/librte_pmd_pcap/rte_pmd_pcap_version.map
create mode 100644 lib/librte_pmd_ring/rte_eth_ring_version.map
create mode 100644 lib/librte_pmd_virtio/rte_pmd_virtio_version.map
create mode 100644 lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
create mode 100644 lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
create mode 100644 lib/librte_port/rte_port_version.map
create mode 100644 lib/librte_power/rte_power_version.map
create mode 100644 lib/librte_ring/rte_ring_version.map
create mode 100644 lib/librte_sched/rte_sched_version.map
create mode 100644 lib/librte_table/rte_table_version.map
create mode 100644 lib/librte_timer/rte_timer_version.map
Comments
On Mon, Sep 15, 2014 at 03:23:49PM -0400, Neil Horman wrote:
> Add linker version script files to each DPDK library to put a stake in the
> ground from which we can start cleaning up API's
>
> Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> CC: Thomas Monjalon <thomas.monjalon@6wind.com>
> CC: "Richardson, Bruce" <bruce.richardson@intel.com>
> ---
> <... snip for brevity ...>
>
> diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile
> index 65e566d..1f96645 100644
> --- a/lib/librte_acl/Makefile
> +++ b/lib/librte_acl/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_acl.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_acl/rte_acl_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
>
> diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
> new file mode 100644
> index 0000000..4480690
> --- /dev/null
> +++ b/lib/librte_acl/rte_acl_version.map
> @@ -0,0 +1,19 @@
> +DPDK_1.8 {
> + global:
> + rte_acl_create;
> + rte_acl_find_existing;
> + rte_acl_free;
> + rte_acl_add_rules;
> + rte_acl_reset_rules;
> + rte_acl_build;
> + rte_acl_reset;
> + rte_acl_classify;
> + rte_acl_dump;
> + rte_acl_list_dump;
> + rte_acl_ipv4vlan_add_rules;
> + rte_acl_ipv4vlan_build;
> + rte_acl_classify_scalar;
> +
> + local: *;
> +};
> +
Looking at this versionning, it strikes me that this looks like the perfect
opportunity to go to a 2.0 version number.
My reasoning:
* We have already got fairly significant ABI and indeed API changes in this
release due to the mbuf rework. That allow makes it a logical point to
bump the Intel DPDK major version number to 2.0
* Having the API versioning start at a 2.0 looks neater than having it at
1.8, since .0 is a nice round version number to start with. Also if we
decide in the near future for whatever reasons to go to a 2.0 release, the
ABIs are probably still going to be 1.8. [Again, if we ever want to go to
2.0, now looks the perfect time]
* For the naming of the .so files, starting with them at a .2 now seems
reasonable to me, denoting a clean break with the older releases which did
have a different ABI. [Though again it makes more sense if you consider
that we may want to move to a 2.0 in future].
What do people think?
/Bruce
On Fri, Sep 19, 2014 at 10:45:38AM +0100, Bruce Richardson wrote:
> On Mon, Sep 15, 2014 at 03:23:49PM -0400, Neil Horman wrote:
> > Add linker version script files to each DPDK library to put a stake in the
> > ground from which we can start cleaning up API's
> >
> > Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> > CC: Thomas Monjalon <thomas.monjalon@6wind.com>
> > CC: "Richardson, Bruce" <bruce.richardson@intel.com>
> > ---
> > <... snip for brevity ...>
> >
> > diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile
> > index 65e566d..1f96645 100644
> > --- a/lib/librte_acl/Makefile
> > +++ b/lib/librte_acl/Makefile
> > @@ -37,6 +37,8 @@ LIB = librte_acl.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_acl/rte_acl_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
> >
> > diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
> > new file mode 100644
> > index 0000000..4480690
> > --- /dev/null
> > +++ b/lib/librte_acl/rte_acl_version.map
> > @@ -0,0 +1,19 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_acl_create;
> > + rte_acl_find_existing;
> > + rte_acl_free;
> > + rte_acl_add_rules;
> > + rte_acl_reset_rules;
> > + rte_acl_build;
> > + rte_acl_reset;
> > + rte_acl_classify;
> > + rte_acl_dump;
> > + rte_acl_list_dump;
> > + rte_acl_ipv4vlan_add_rules;
> > + rte_acl_ipv4vlan_build;
> > + rte_acl_classify_scalar;
> > +
> > + local: *;
> > +};
> > +
>
> Looking at this versionning, it strikes me that this looks like the perfect
> opportunity to go to a 2.0 version number.
>
> My reasoning:
> * We have already got fairly significant ABI and indeed API changes in this
> release due to the mbuf rework. That allow makes it a logical point to
> bump the Intel DPDK major version number to 2.0
> * Having the API versioning start at a 2.0 looks neater than having it at
> 1.8, since .0 is a nice round version number to start with. Also if we
> decide in the near future for whatever reasons to go to a 2.0 release, the
> ABIs are probably still going to be 1.8. [Again, if we ever want to go to
> 2.0, now looks the perfect time]
> * For the naming of the .so files, starting with them at a .2 now seems
> reasonable to me, denoting a clean break with the older releases which did
> have a different ABI. [Though again it makes more sense if you consider
> that we may want to move to a 2.0 in future].
>
> What do people think?
>
I'm fine with it. Just so that we're clear, this patch treats versions like
arbitrary strings (the file structure denotes version ordinality), so 1.8 vs 2.0
makes absolutely no difference as far as it goes, the exported version value is
a matter of policy, but I'm fine with making that adjustment
Neil
> /Bruce
>
On Mon, Sep 15, 2014 at 03:23:49PM -0400, Neil Horman wrote:
> Add linker version script files to each DPDK library to put a stake in the
> ground from which we can start cleaning up API's
>
> Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> CC: Thomas Monjalon <thomas.monjalon@6wind.com>
> CC: "Richardson, Bruce" <bruce.richardson@intel.com>
> ---
> lib/librte_acl/Makefile | 2 +
> lib/librte_acl/rte_acl_version.map | 19 ++++
> lib/librte_cfgfile/Makefile | 2 +
> lib/librte_cfgfile/rte_cfgfile_version.map | 14 +++
> lib/librte_cmdline/Makefile | 2 +
> lib/librte_cmdline/rte_cmdline_version.map | 69 +++++++++++++
> lib/librte_distributor/Makefile | 2 +
> lib/librte_distributor/rte_distributor_version.map | 16 +++
> lib/librte_eal/bsdapp/eal/Makefile | 2 +
> lib/librte_eal/bsdapp/eal/rte_eal_version.map | 89 +++++++++++++++++
> lib/librte_eal/linuxapp/eal/Makefile | 2 +
> lib/librte_eal/linuxapp/eal/rte_eal_version.map | 89 +++++++++++++++++
> lib/librte_ether/Makefile | 2 +
> lib/librte_ether/rte_ether_version.map | 108 +++++++++++++++++++++
> lib/librte_hash/Makefile | 2 +
> lib/librte_hash/rte_hash_version.map | 18 ++++
> lib/librte_ip_frag/Makefile | 2 +
> lib/librte_ip_frag/rte_ipfrag_version.map | 14 +++
> lib/librte_ivshmem/Makefile | 2 +
> lib/librte_ivshmem/rte_ivshmem_version.map | 13 +++
> lib/librte_kni/Makefile | 2 +
> lib/librte_kni/rte_kni_version.map | 19 ++++
> lib/librte_kvargs/Makefile | 2 +
> lib/librte_kvargs/rte_kvargs_version.map | 10 ++
> lib/librte_lpm/Makefile | 2 +
> lib/librte_lpm/rte_lpm_version.map | 24 +++++
> lib/librte_malloc/Makefile | 2 +
> lib/librte_malloc/rte_malloc_version.map | 19 ++++
> lib/librte_mbuf/Makefile | 2 +
> lib/librte_mbuf/rte_mbuf_version.map | 12 +++
> lib/librte_mempool/Makefile | 2 +
> lib/librte_mempool/rte_mempool_version.map | 18 ++++
> lib/librte_meter/Makefile | 2 +
> lib/librte_meter/rte_meter_version.map | 13 +++
> lib/librte_pipeline/Makefile | 2 +
> lib/librte_pipeline/rte_pipeline_version.map | 23 +++++
> lib/librte_pmd_bond/Makefile | 2 +
> lib/librte_pmd_bond/rte_eth_bond_version.map | 20 ++++
> lib/librte_pmd_e1000/Makefile | 2 +
> lib/librte_pmd_e1000/rte_pmd_e1000_version.map | 5 +
> lib/librte_pmd_i40e/Makefile | 2 +
> lib/librte_pmd_i40e/rte_pmd_i40e_version.map | 5 +
> lib/librte_pmd_ixgbe/Makefile | 2 +
> lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map | 5 +
> lib/librte_pmd_pcap/Makefile | 2 +
> lib/librte_pmd_pcap/rte_pmd_pcap_version.map | 5 +
> lib/librte_pmd_ring/Makefile | 2 +
> lib/librte_pmd_ring/rte_eth_ring.c | 2 +-
> lib/librte_pmd_ring/rte_eth_ring.h | 6 --
> lib/librte_pmd_ring/rte_eth_ring_version.map | 10 ++
> lib/librte_pmd_virtio/Makefile | 1 +
> lib/librte_pmd_virtio/rte_pmd_virtio_version.map | 5 +
> lib/librte_pmd_vmxnet3/Makefile | 2 +
> lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map | 5 +
> lib/librte_pmd_xenvirt/Makefile | 2 +
> lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map | 8 ++
> lib/librte_port/Makefile | 2 +
> lib/librte_port/rte_port_version.map | 18 ++++
> lib/librte_power/Makefile | 2 +
> lib/librte_power/rte_power_version.map | 14 +++
> lib/librte_ring/Makefile | 2 +
> lib/librte_ring/rte_ring_version.map | 12 +++
> lib/librte_sched/Makefile | 2 +
> lib/librte_sched/rte_sched_version.map | 22 +++++
> lib/librte_table/Makefile | 2 +
> lib/librte_table/rte_table_version.map | 22 +++++
> lib/librte_timer/Makefile | 2 +
> lib/librte_timer/rte_timer_version.map | 16 +++
> 68 files changed, 825 insertions(+), 7 deletions(-)
> create mode 100644 lib/librte_acl/rte_acl_version.map
> create mode 100644 lib/librte_cfgfile/rte_cfgfile_version.map
> create mode 100644 lib/librte_cmdline/rte_cmdline_version.map
> create mode 100644 lib/librte_distributor/rte_distributor_version.map
> create mode 100644 lib/librte_eal/bsdapp/eal/rte_eal_version.map
> create mode 100644 lib/librte_eal/linuxapp/eal/rte_eal_version.map
> create mode 100644 lib/librte_ether/rte_ether_version.map
> create mode 100644 lib/librte_hash/rte_hash_version.map
> create mode 100644 lib/librte_ip_frag/rte_ipfrag_version.map
> create mode 100644 lib/librte_ivshmem/rte_ivshmem_version.map
> create mode 100644 lib/librte_kni/rte_kni_version.map
> create mode 100644 lib/librte_kvargs/rte_kvargs_version.map
> create mode 100644 lib/librte_lpm/rte_lpm_version.map
> create mode 100644 lib/librte_malloc/rte_malloc_version.map
> create mode 100644 lib/librte_mbuf/rte_mbuf_version.map
> create mode 100644 lib/librte_mempool/rte_mempool_version.map
> create mode 100644 lib/librte_meter/rte_meter_version.map
> create mode 100644 lib/librte_pipeline/rte_pipeline_version.map
> create mode 100644 lib/librte_pmd_bond/rte_eth_bond_version.map
> create mode 100644 lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> create mode 100644 lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> create mode 100644 lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> create mode 100644 lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> create mode 100644 lib/librte_pmd_ring/rte_eth_ring_version.map
> create mode 100644 lib/librte_pmd_virtio/rte_pmd_virtio_version.map
> create mode 100644 lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> create mode 100644 lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> create mode 100644 lib/librte_port/rte_port_version.map
> create mode 100644 lib/librte_power/rte_power_version.map
> create mode 100644 lib/librte_ring/rte_ring_version.map
> create mode 100644 lib/librte_sched/rte_sched_version.map
> create mode 100644 lib/librte_table/rte_table_version.map
> create mode 100644 lib/librte_timer/rte_timer_version.map
>
> diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile
> index 65e566d..1f96645 100644
> --- a/lib/librte_acl/Makefile
> +++ b/lib/librte_acl/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_acl.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_acl/rte_acl_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
>
> diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
> new file mode 100644
> index 0000000..4480690
> --- /dev/null
> +++ b/lib/librte_acl/rte_acl_version.map
> @@ -0,0 +1,19 @@
> +DPDK_1.8 {
> + global:
> + rte_acl_create;
> + rte_acl_find_existing;
> + rte_acl_free;
> + rte_acl_add_rules;
> + rte_acl_reset_rules;
> + rte_acl_build;
> + rte_acl_reset;
> + rte_acl_classify;
> + rte_acl_dump;
> + rte_acl_list_dump;
> + rte_acl_ipv4vlan_add_rules;
> + rte_acl_ipv4vlan_build;
> + rte_acl_classify_scalar;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_cfgfile/Makefile b/lib/librte_cfgfile/Makefile
> index 55e8701..e655098 100644
> --- a/lib/librte_cfgfile/Makefile
> +++ b/lib/librte_cfgfile/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_cfgfile.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_cfgfile/rte_cfgfile_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map
> new file mode 100644
> index 0000000..10ecea6
> --- /dev/null
> +++ b/lib/librte_cfgfile/rte_cfgfile_version.map
> @@ -0,0 +1,14 @@
> +DPDK_1.8 {
> + global:
> + rte_cfgfile_load;
> + rte_cfgfile_num_sections;
> + rte_cfgfile_sections;
> + rte_cfgfile_has_section;
> + rte_cfgfile_section_num_entries;
> + rte_cfgfile_section_entries;
> + rte_cfgfile_get_entry;
> + rte_cfgfile_has_entry;
> + rte_cfgfile_close;
> +
> + local: *;
> +};
> diff --git a/lib/librte_cmdline/Makefile b/lib/librte_cmdline/Makefile
> index 7eae449..1a47173 100644
> --- a/lib/librte_cmdline/Makefile
> +++ b/lib/librte_cmdline/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_cmdline.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_cmdline/rte_cmdline_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := cmdline.c
> SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_cirbuf.c
> diff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map
> new file mode 100644
> index 0000000..7616eff
> --- /dev/null
> +++ b/lib/librte_cmdline/rte_cmdline_version.map
> @@ -0,0 +1,69 @@
> +DPDK_1.8 {
> + global:
> + cmdline_new;
> + cmdline_set_prompt;
> + cmdline_free;
> + cmdline_printf;
> + cmdline_in;
> + cmdline_write_char;
> + cmdline_interact;
> + cmdline_quit;
> + cmdline_parse;
> + cmdline_complete;
> + cmdline_isendoftoken;
> + cmdline_parse_num;
> + cmdline_get_help_num;
> + cmdline_parse_ipaddr;
> + cmdline_get_help_ipaddr;
> + cmdline_parse_etheraddr;
> + cmdline_get_help_etheraddr;
> + cmdline_parse_string;
> + cmdline_complete_get_nb_string;
> + cmdline_complete_get_elt_string;
> + cmdline_get_help_string;
> + cmdline_parse_portlist;
> + cmdline_get_help_portlist;
> + cmdline_token_string_ops;
> + cmdline_token_num_ops;
> + cmdline_token_string_ops;
> + cmdline_token_ipaddr_ops;
> + cmdline_token_etheraddr_ops;
> + vt100_init;
> + vt100_parser;
> + cmdline_file_new;
> + cmdline_stdin_new;
> + cmdline_stdin_exit;
> + cirbuf_init;
> + cirbuf_add_head_safe;
> + cirbuf_add_head;
> + cirbuf_add_tail_safe;
> + cirbuf_add_tail;
> + cirbuf_del_head_safe;
> + cirbuf_del_head;
> + cirbuf_del_tail_safe;
> + cirbuf_del_tail;
> + cirbuf_get_head;
> + cirbuf_get_tail;
> + cirbuf_add_buf_head;
> + cirbuf_add_buf_tail;
> + cirbuf_del_buf_head;
> + cirbuf_del_buf_tail;
> + cirbuf_get_buf_head;
> + cirbuf_get_buf_tail;
> + cirbuf_align_left;
> + cirbuf_align_right;
> + rdline_init;
> + rdline_newline;
> + rdline_stop;
> + rdline_quit;
> + rdline_restart;
> + rdline_redisplay;
> + rdline_reset;
> + rdline_char_in;
> + rdline_get_buffer;
> + rdline_add_history;
> + rdline_clear_history;
> + rdline_get_history_item;
> +
> + local: *;
> +};
> diff --git a/lib/librte_distributor/Makefile b/lib/librte_distributor/Makefile
> index 36699f8..97d8bbb 100644
> --- a/lib/librte_distributor/Makefile
> +++ b/lib/librte_distributor/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_distributor.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_distributor/rte_distributor_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) := rte_distributor.c
>
> diff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map
> new file mode 100644
> index 0000000..b81ddc8
> --- /dev/null
> +++ b/lib/librte_distributor/rte_distributor_version.map
> @@ -0,0 +1,16 @@
> +DPDK_1.8 {
> +
> + global:
> + rte_distributor_create;
> + rte_distributor_process;
> + rte_distributor_returned_pkts;
> + rte_distributor_flush;
> + rte_distributor_clear_returns;
> + rte_distributor_get_pkt;
> + rte_distributor_return_pkt;
> + rte_distributor_request_pkt;
> + rte_distributor_poll_pkt;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_eal/bsdapp/eal/Makefile b/lib/librte_eal/bsdapp/eal/Makefile
> index 8f44273..2caaf00 100644
> --- a/lib/librte_eal/bsdapp/eal/Makefile
> +++ b/lib/librte_eal/bsdapp/eal/Makefile
> @@ -45,6 +45,8 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_ring
> CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_pcap
> CFLAGS += $(WERROR_FLAGS) -O3
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> +
> # specific to linuxapp exec-env
> SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) := eal.c
> SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) += eal_memory.c
> diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> new file mode 100644
> index 0000000..71788e1
> --- /dev/null
> +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> @@ -0,0 +1,89 @@
> +DPDK_1.8 {
> + global:
> + rte_eal_alarm_set;
> + rte_eal_alarm_cancel;
> + rte_exit;
> + rte_cpu_get_flag_enabled;
> + rte_cpu_check_supported;
> + rte_get_tsc_hz;
> + rte_get_hpet_cycles;
> + rte_get_hpet_hz;
> + rte_eal_hpet_init;
> + rte_delay_us;
> + rte_dump_stack;
> + rte_dump_registers;
> + __rte_panic;
> + rte_eal_devargs_add;
> + rte_eal_devargs_type_count;
> + rte_eal_devargs_dump;
> + rte_eal_driver_register;
> + rte_eal_driver_unregister;
> + rte_eal_dev_init;
> + rte_eal_init;
> + rte_set_application_usage_hook;
> + rte_eal_has_hugepages;
> + rte_strerror;
> + rte_hexdump;
> + rte_memdump;
> + rte_intr_callback_register;
> + rte_intr_callback_unregister;
> + rte_intr_enable;
> + rte_intr_disable;
> + rte_eal_remote_launch;
> + rte_eal_mp_remote_launch;
> + rte_eal_get_lcore_state;
> + rte_eal_wait_lcore;
> + rte_eal_mp_wait_lcore;
> + rte_openlog_stream;
> + rte_set_log_level;
> + rte_set_log_type;
> + rte_log_cur_msg_loglevel;
> + rte_log_cur_msg_logtype;
> + rte_log_set_history;
> + rte_log_dump_history;
> + rte_log_add_in_history;
> + rte_log;
> + rte_vlog;
> + rte_mem_lock_page;
> + rte_mem_virt2phy;
> + rte_eal_get_physmem_layout;
> + rte_dump_physmem_layout;
> + rte_eal_get_physmem_size;
> + rte_memory_get_nchannel;
> + rte_memory_get_nrank;
> + rte_mem_phy2mch;
> + rte_xen_dom0_memory_init;
> + rte_xen_dom0_memory_attach;
> + rte_memzone_reserve;
> + rte_memzone_reserve_aligned;
> + rte_memzone_reserve_bounded;
> + rte_memzone_lookup;
> + rte_memzone_dump;
> + rte_memzone_walk;
> + rte_eal_pci_probe;
> + rte_eal_pci_dump;
> + rte_eal_pci_register;
> + rte_eal_pci_unregister;
> + rte_snprintf;
> + rte_strsplit;
> + rte_eal_tailq_reserve;
> + rte_eal_tailq_reserve_by_idx;
> + rte_dump_tailq;
> + rte_eal_tailq_lookup;
> + rte_eal_tailq_lookup_by_idx;
> + lcore_config;
> + per_lcore__lcore_id;
> + eal_timer_source;
> + rte_cycles_vmware_tsc_map;
> + rte_eal_get_configuration;
> + rte_logs;
> + rte_eal_lcore_role;
> + test_mp_secondary;
> + rte_eal_process_type;
> + per_lcore__rte_errno;
> + pci_device_list;
> + devargs_list;
> + eal_parse_sysfs_value;
> +
> + local: *;
> +};
> diff --git a/lib/librte_eal/linuxapp/eal/Makefile b/lib/librte_eal/linuxapp/eal/Makefile
> index 756d6b0..254d59c 100644
> --- a/lib/librte_eal/linuxapp/eal/Makefile
> +++ b/lib/librte_eal/linuxapp/eal/Makefile
> @@ -33,6 +33,8 @@ include $(RTE_SDK)/mk/rte.vars.mk
>
> LIB = librte_eal.a
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> +
> VPATH += $(RTE_SDK)/lib/librte_eal/common
>
> CFLAGS += -I$(SRCDIR)/include
> diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> new file mode 100644
> index 0000000..71788e1
> --- /dev/null
> +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> @@ -0,0 +1,89 @@
> +DPDK_1.8 {
> + global:
> + rte_eal_alarm_set;
> + rte_eal_alarm_cancel;
> + rte_exit;
> + rte_cpu_get_flag_enabled;
> + rte_cpu_check_supported;
> + rte_get_tsc_hz;
> + rte_get_hpet_cycles;
> + rte_get_hpet_hz;
> + rte_eal_hpet_init;
> + rte_delay_us;
> + rte_dump_stack;
> + rte_dump_registers;
> + __rte_panic;
> + rte_eal_devargs_add;
> + rte_eal_devargs_type_count;
> + rte_eal_devargs_dump;
> + rte_eal_driver_register;
> + rte_eal_driver_unregister;
> + rte_eal_dev_init;
> + rte_eal_init;
> + rte_set_application_usage_hook;
> + rte_eal_has_hugepages;
> + rte_strerror;
> + rte_hexdump;
> + rte_memdump;
> + rte_intr_callback_register;
> + rte_intr_callback_unregister;
> + rte_intr_enable;
> + rte_intr_disable;
> + rte_eal_remote_launch;
> + rte_eal_mp_remote_launch;
> + rte_eal_get_lcore_state;
> + rte_eal_wait_lcore;
> + rte_eal_mp_wait_lcore;
> + rte_openlog_stream;
> + rte_set_log_level;
> + rte_set_log_type;
> + rte_log_cur_msg_loglevel;
> + rte_log_cur_msg_logtype;
> + rte_log_set_history;
> + rte_log_dump_history;
> + rte_log_add_in_history;
> + rte_log;
> + rte_vlog;
> + rte_mem_lock_page;
> + rte_mem_virt2phy;
> + rte_eal_get_physmem_layout;
> + rte_dump_physmem_layout;
> + rte_eal_get_physmem_size;
> + rte_memory_get_nchannel;
> + rte_memory_get_nrank;
> + rte_mem_phy2mch;
> + rte_xen_dom0_memory_init;
> + rte_xen_dom0_memory_attach;
> + rte_memzone_reserve;
> + rte_memzone_reserve_aligned;
> + rte_memzone_reserve_bounded;
> + rte_memzone_lookup;
> + rte_memzone_dump;
> + rte_memzone_walk;
> + rte_eal_pci_probe;
> + rte_eal_pci_dump;
> + rte_eal_pci_register;
> + rte_eal_pci_unregister;
> + rte_snprintf;
> + rte_strsplit;
> + rte_eal_tailq_reserve;
> + rte_eal_tailq_reserve_by_idx;
> + rte_dump_tailq;
> + rte_eal_tailq_lookup;
> + rte_eal_tailq_lookup_by_idx;
> + lcore_config;
> + per_lcore__lcore_id;
> + eal_timer_source;
> + rte_cycles_vmware_tsc_map;
> + rte_eal_get_configuration;
> + rte_logs;
> + rte_eal_lcore_role;
> + test_mp_secondary;
> + rte_eal_process_type;
> + per_lcore__rte_errno;
> + pci_device_list;
> + devargs_list;
> + eal_parse_sysfs_value;
> +
> + local: *;
> +};
> diff --git a/lib/librte_ether/Makefile b/lib/librte_ether/Makefile
> index b310f8b..f40b5cc 100644
> --- a/lib/librte_ether/Makefile
> +++ b/lib/librte_ether/Makefile
> @@ -39,6 +39,8 @@ LIB = libethdev.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_ether/rte_ether_version.map
> +
> SRCS-y += rte_ethdev.c
>
> #
> diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map
> new file mode 100644
> index 0000000..41952ab
> --- /dev/null
> +++ b/lib/librte_ether/rte_ether_version.map
> @@ -0,0 +1,108 @@
> +DPDK_1.8 {
> + global:
> + rte_eth_driver_register;
> + rte_eth_dev_configure;
> + rte_eth_rx_queue_setup;
> + rte_eth_tx_queue_setup;
> + rte_eth_dev_socket_id;
> + rte_eth_dev_rx_queue_start;
> + rte_eth_dev_rx_queue_stop;
> + rte_eth_dev_tx_queue_start;
> + rte_eth_dev_tx_queue_stop;
> + rte_eth_dev_start;
> + rte_eth_dev_stop;
> + rte_eth_dev_set_link_up;
> + rte_eth_dev_set_link_down;
> + rte_eth_dev_close;
> + rte_eth_promiscuous_enable;
> + rte_eth_promiscuous_disable;
> + rte_eth_promiscuous_get;
> + rte_eth_allmulticast_enable;
> + rte_eth_allmulticast_disable;
> + rte_eth_allmulticast_get;
> + rte_eth_link;
> + rte_eth_link_get_nowait;
> + rte_eth_stats;
> + rte_eth_stats_reset;
> + rte_eth_dev_set_tx_queue_stats_mapping;
> + rte_eth_dev_set_rx_queue_stats_mapping;
> + rte_eth_macaddr_get;
> + rte_eth_dev_info_get;
> + rte_eth_dev_get_mtu;
> + rte_eth_dev_set_mtu;
> + rte_eth_dev_vlan_filter;
> + rte_eth_dev_set_vlan_strip_on_queue;
> + rte_eth_dev_set_vlan_ether_type;
> + rte_eth_dev_set_vlan_offload;
> + rte_eth_dev_get_vlan_offload;
> + rte_eth_dev_set_vlan_pvid;
> + rte_eth_rx_burst;
> + rte_eth_rx_queue_count;
> + rte_eth_rx_descriptor_done;
> + rte_eth_tx_burst;
> + rte_eth_dev_fdir_add_signature_filter;
> + rte_eth_dev_fdir_update_signature_filter;
> + rte_eth_dev_fdir_remove_signature_filter;
> + rte_eth_dev_fdir_get_infos;
> + rte_eth_dev_fdir_add_perfect_filter;
> + rte_eth_dev_fdir_update_perfect_filter;
> + rte_eth_dev_fdir_remove_perfect_filter;
> + rte_eth_dev_fdir_set_masks;
> + rte_eth_dev_callback_register;
> + rte_eth_dev_callback_unregister;
> + rte_eth_dev_callback_process;
> + rte_eth_led_on;
> + rte_eth_led_off;
> + rte_eth_dev_flow_ctrl_get;
> + rte_eth_dev_flow_ctrl_set;
> + rte_eth_dev_priority_flow_ctrl_set;
> + rte_eth_dev_mac_addr_add;
> + rte_eth_dev_mac_addr_remove;
> + rte_eth_dev_rss_reta_update;
> + rte_eth_dev_rss_reta_query;
> + rte_eth_dev_uc_hash_table_set;
> + rte_eth_dev_uc_all_hash_table_set;
> + rte_eth_dev_set_vf_rxmode;
> + rte_eth_dev_set_vf_tx;
> + rte_eth_dev_set_vf_rx;
> + rte_eth_dev_set_vf_vlan_filter;
> + rte_eth_mirror_rule_set;
> + rte_eth_mirror_rule_reset;
> + rte_eth_set_queue_rate_limit;
> + rte_eth_set_vf_rate_limit;
> + rte_eth_dev_bypass_init;
> + rte_eth_dev_bypass_state_show;
> + rte_eth_dev_bypass_state_set;
> + rte_eth_dev_bypass_event_show;
> + rte_eth_dev_bypass_event_store;
> + rte_eth_dev_wd_timeout_store;
> + rte_eth_dev_bypass_ver_show;
> + rte_eth_dev_bypass_wd_timeout_show;
> + rte_eth_dev_bypass_wd_reset;
> + rte_eth_dev_rss_hash_update;
> + rte_eth_dev_rss_hash_conf_get;
> + rte_eth_dev_add_syn_filter;
> + rte_eth_dev_remove_syn_filter;
> + rte_eth_dev_get_syn_filter;
> + rte_eth_dev_add_ethertype_filter;
> + rte_eth_dev_remove_ethertype_filter;
> + rte_eth_dev_get_ethertype_filter;
> + rte_eth_dev_add_2tuple_filter;
> + rte_eth_dev_remove_2tuple_filter;
> + rte_eth_dev_get_2tuple_filter;
> + rte_eth_dev_add_5tuple_filter;
> + rte_eth_dev_remove_5tuple_filter;
> + rte_eth_dev_get_5tuple_filter;
> + rte_eth_dev_add_flex_filter;
> + rte_eth_dev_remove_flex_filter;
> + rte_eth_dev_get_flex_filter;
> + rte_eth_dev_count;
> + rte_eth_link_get;
> + rte_eth_devices;
> + rte_eth_stats_get;
> + rte_eth_dev_allocate;
> + _rte_eth_dev_callback_process;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile
> index 95e4c09..a449ec2 100644
> --- a/lib/librte_hash/Makefile
> +++ b/lib/librte_hash/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_hash.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_hash/rte_hash_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_hash.c
> SRCS-$(CONFIG_RTE_LIBRTE_HASH) += rte_fbk_hash.c
> diff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map
> new file mode 100644
> index 0000000..2a34313
> --- /dev/null
> +++ b/lib/librte_hash/rte_hash_version.map
> @@ -0,0 +1,18 @@
> +DPDK_1.8 {
> + global:
> + rte_fbk_hash_find_existing;
> + rte_fbk_hash_create;
> + rte_fbk_hash_free;
> + rte_hash_create;
> + rte_hash_find_existing;
> + rte_hash_free;
> + rte_hash_add_key;
> + rte_hash_add_key_with_hash;
> + rte_hash_del_key;
> + rte_hash_del_key_with_hash;
> + rte_hash_lookup;
> + rte_hash_lookup_with_hash;
> + rte_hash_lookup_bulk;
> +
> + local: *;
> +};
> diff --git a/lib/librte_ip_frag/Makefile b/lib/librte_ip_frag/Makefile
> index 2265c93..ede5a89 100644
> --- a/lib/librte_ip_frag/Makefile
> +++ b/lib/librte_ip_frag/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_ip_frag.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_ip_frag/rte_ipfrag_version.map
> +
> #source files
> SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_fragmentation.c
> SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_reassembly.c
> diff --git a/lib/librte_ip_frag/rte_ipfrag_version.map b/lib/librte_ip_frag/rte_ipfrag_version.map
> new file mode 100644
> index 0000000..afe1a0b
> --- /dev/null
> +++ b/lib/librte_ip_frag/rte_ipfrag_version.map
> @@ -0,0 +1,14 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_ip_frag_table_create;
> + rte_ipv6_fragment_packet;
> + rte_ipv6_frag_reassemble_packet;
> + rte_ipv4_fragment_packet;
> + rte_ipv4_frag_reassemble_packet;
> + rte_ip_frag_free_death_row;
> + rte_ip_frag_table_statistics_dump;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_ivshmem/Makefile b/lib/librte_ivshmem/Makefile
> index 536814c..be6f21a 100644
> --- a/lib/librte_ivshmem/Makefile
> +++ b/lib/librte_ivshmem/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_ivshmem.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>
> +EXPORT_MAPS := $(RTE_SDK)/lib/librte_ivshmem/rte_ivshmem_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_IVSHMEM) := rte_ivshmem.c
>
> diff --git a/lib/librte_ivshmem/rte_ivshmem_version.map b/lib/librte_ivshmem/rte_ivshmem_version.map
> new file mode 100644
> index 0000000..a204339
> --- /dev/null
> +++ b/lib/librte_ivshmem/rte_ivshmem_version.map
> @@ -0,0 +1,13 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_ivshmem_metadata_create;
> + rte_ivshmem_metadata_add_memzone;
> + rte_ivshmem_metadata_add_ring;
> + rte_ivshmem_metadata_add_mempool;
> + rte_ivshmem_metadata_cmdline_generate;
> + rte_ivshmem_metadata_dump;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_kni/Makefile b/lib/librte_kni/Makefile
> index 5267304..c119fc1 100644
> --- a/lib/librte_kni/Makefile
> +++ b/lib/librte_kni/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_kni.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_kni/rte_kni_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_KNI) := rte_kni.c
>
> diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
> new file mode 100644
> index 0000000..58fbc1f
> --- /dev/null
> +++ b/lib/librte_kni/rte_kni_version.map
> @@ -0,0 +1,19 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_kni_alloc;
> + rte_kni_create;
> + rte_kni_release;
> + rte_kni_handle_request;
> + rte_kni_rx_burst;
> + rte_kni_tx_burst;
> + rte_kni_get_port_id;
> + rte_kni_get;
> + rte_kni_info_get;
> + rte_kni_register_handlers;
> + rte_kni_unregister_handlers;
> + rte_kni_close;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_kvargs/Makefile b/lib/librte_kvargs/Makefile
> index b09359a..83a42b1 100644
> --- a/lib/librte_kvargs/Makefile
> +++ b/lib/librte_kvargs/Makefile
> @@ -38,6 +38,8 @@ LIB = librte_kvargs.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_kvargs/rte_kvargs_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) := rte_kvargs.c
>
> diff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map
> new file mode 100644
> index 0000000..7873c8c
> --- /dev/null
> +++ b/lib/librte_kvargs/rte_kvargs_version.map
> @@ -0,0 +1,10 @@
> +DPDK_1.8 {
> +
> + global:
> + rte_kvargs_parse;
> + rte_kvargs_free;
> + rte_kvargs_process;
> + rte_kvargs_count;
> +
> + local: *;
> +};
> diff --git a/lib/librte_lpm/Makefile b/lib/librte_lpm/Makefile
> index fa94163..05de8d9 100644
> --- a/lib/librte_lpm/Makefile
> +++ b/lib/librte_lpm/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_lpm.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_lpm/rte_lpm_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_LPM) := rte_lpm.c rte_lpm6.c
>
> diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
> new file mode 100644
> index 0000000..8ae9318
> --- /dev/null
> +++ b/lib/librte_lpm/rte_lpm_version.map
> @@ -0,0 +1,24 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_lpm_create;
> + rte_lpm_find_existing;
> + rte_lpm_free;
> + rte_lpm_add;
> + rte_lpm_is_rule_present;
> + rte_lpm_delete;
> + rte_lpm_delete_all;
> + rte_lpm6_create;
> + rte_lpm6_find_existing;
> + rte_lpm6_free;
> + rte_lpm6_add;
> + rte_lpm6_is_rule_present;
> + rte_lpm6_delete;
> + rte_lpm6_delete_bulk_func;
> + rte_lpm6_delete_all;
> + rte_lpm6_lookup;
> + rte_lpm6_lookup_bulk_func;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_malloc/Makefile b/lib/librte_malloc/Makefile
> index ba87e34..1a5c288 100644
> --- a/lib/librte_malloc/Makefile
> +++ b/lib/librte_malloc/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_malloc.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_malloc/rte_malloc_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_MALLOC) := rte_malloc.c malloc_elem.c malloc_heap.c
>
> diff --git a/lib/librte_malloc/rte_malloc_version.map b/lib/librte_malloc/rte_malloc_version.map
> new file mode 100644
> index 0000000..77db879
> --- /dev/null
> +++ b/lib/librte_malloc/rte_malloc_version.map
> @@ -0,0 +1,19 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_malloc;
> + rte_zmalloc;
> + rte_calloc;
> + rte_realloc;
> + rte_malloc_socket;
> + rte_zmalloc_socket;
> + rte_calloc_socket;
> + rte_free;
> + rte_malloc_validate;
> + rte_malloc_get_socket_stats;
> + rte_malloc_dump_stats;
> + rte_malloc_set_limit;
> + rte_malloc_virt2phy;
> +
> + local: *;
> +};
> diff --git a/lib/librte_mbuf/Makefile b/lib/librte_mbuf/Makefile
> index 9b45ba4..5cd4941 100644
> --- a/lib/librte_mbuf/Makefile
> +++ b/lib/librte_mbuf/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_mbuf.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_mbuf/rte_mbuf_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_MBUF) := rte_mbuf.c
>
> diff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map
> new file mode 100644
> index 0000000..55e352b
> --- /dev/null
> +++ b/lib/librte_mbuf/rte_mbuf_version.map
> @@ -0,0 +1,12 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_mbuf_sanity_check;
> + rte_ctrlmbuf_init;
> + rte_pktmbuf_init;
> + rte_pktmbuf_pool_init;
> + rte_pktmbuf_dump;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_mempool/Makefile b/lib/librte_mempool/Makefile
> index 9939e10..07b5b4e 100644
> --- a/lib/librte_mempool/Makefile
> +++ b/lib/librte_mempool/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_mempool.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_mempool/rte_mempool_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool.c
> ifeq ($(CONFIG_RTE_LIBRTE_XEN_DOM0),y)
> diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map
> new file mode 100644
> index 0000000..7a19982
> --- /dev/null
> +++ b/lib/librte_mempool/rte_mempool_version.map
> @@ -0,0 +1,18 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_mempool_create;
> + rte_mempool_xmem_create;
> + rte_dom0_mempool_create;
> + rte_mempool_dump;
> + rte_mempool_audit;
> + rte_mempool_list_dump;
> + rte_mempool_lookup;
> + rte_mempool_calc_obj_size;
> + rte_mempool_xmem_size;
> + rte_mempool_xmem_usage;
> + rte_mempool_walk;
> + rte_mempool_count;
> +
> + local: *;
> +};
> diff --git a/lib/librte_meter/Makefile b/lib/librte_meter/Makefile
> index b25c0cc..0778690 100644
> --- a/lib/librte_meter/Makefile
> +++ b/lib/librte_meter/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_meter.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_meter/rte_meter_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
> new file mode 100644
> index 0000000..51a73b1
> --- /dev/null
> +++ b/lib/librte_meter/rte_meter_version.map
> @@ -0,0 +1,13 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_meter_srtcm_config;
> + rte_meter_trtcm_config;
> + rte_meter_srtcm_color_blind_check;
> + rte_meter_srtcm_color_aware_check;
> + rte_meter_trtcm_color_blind_check;
> + rte_meter_trtcm_color_aware_check;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_pipeline/Makefile b/lib/librte_pipeline/Makefile
> index cf8fde8..5465d00 100644
> --- a/lib/librte_pipeline/Makefile
> +++ b/lib/librte_pipeline/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pipeline.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pipeline/rte_pipeline_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map
> new file mode 100644
> index 0000000..f868b96
> --- /dev/null
> +++ b/lib/librte_pipeline/rte_pipeline_version.map
> @@ -0,0 +1,23 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_pipeline_create;
> + rte_pipeline_free;
> + rte_pipeline_check;
> + rte_pipeline_run;
> + rte_pipeline_flush;
> + rte_pipeline_table_create;
> + rte_pipeline_table_default_entry_add;
> + rte_pipeline_table_default_entry_delete;
> + rte_pipeline_table_entry_add;
> + rte_pipeline_table_entry_delete;
> + rte_pipeline_port_in_create;
> + rte_pipeline_port_in_connect_to_table;
> + rte_pipeline_port_in_enable;
> + rte_pipeline_port_in_disable;
> + rte_pipeline_port_out_create;
> + rte_pipeline_port_out_packet_insert;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_pmd_bond/Makefile b/lib/librte_pmd_bond/Makefile
> index 953d75e..5b14ce2 100644
> --- a/lib/librte_pmd_bond/Makefile
> +++ b/lib/librte_pmd_bond/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_bond.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_bond/rte_eth_bond_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_pmd_bond/rte_eth_bond_version.map b/lib/librte_pmd_bond/rte_eth_bond_version.map
> new file mode 100644
> index 0000000..17f0a1f
> --- /dev/null
> +++ b/lib/librte_pmd_bond/rte_eth_bond_version.map
> @@ -0,0 +1,20 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_eth_bond_create;
> + rte_eth_bond_slave_add;
> + rte_eth_bond_slave_remove;
> + rte_eth_bond_mode_set;
> + rte_eth_bond_mode_get;
> + rte_eth_bond_primary_set;
> + rte_eth_bond_primary_get;
> + rte_eth_bond_slaves_get;
> + rte_eth_bond_active_slaves_get;
> + rte_eth_bond_mac_address_set;
> + rte_eth_bond_mac_address_reset;
> + rte_eth_bond_xmit_policy_set;
> + rte_eth_bond_xmit_policy_get;
> +
> +
> + local: *;
> +};
> diff --git a/lib/librte_pmd_e1000/Makefile b/lib/librte_pmd_e1000/Makefile
> index 14bc4a2..e225bfe 100644
> --- a/lib/librte_pmd_e1000/Makefile
> +++ b/lib/librte_pmd_e1000/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_e1000.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> +
> ifeq ($(CC), icc)
> #
> # CFLAGS for icc
> diff --git a/lib/librte_pmd_e1000/rte_pmd_e1000_version.map b/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_pmd_i40e/Makefile b/lib/librte_pmd_i40e/Makefile
> index 4b31675..cfbe816 100644
> --- a/lib/librte_pmd_i40e/Makefile
> +++ b/lib/librte_pmd_i40e/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_i40e.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> +
> #
> # Add extra flags for base driver files (also known as shared code)
> # to disable warnings
> diff --git a/lib/librte_pmd_i40e/rte_pmd_i40e_version.map b/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_pmd_ixgbe/Makefile b/lib/librte_pmd_ixgbe/Makefile
> index 00ccedb..1dd14a6 100644
> --- a/lib/librte_pmd_ixgbe/Makefile
> +++ b/lib/librte_pmd_ixgbe/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_ixgbe.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> +
> ifeq ($(CC), icc)
> #
> # CFLAGS for icc
> diff --git a/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map b/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_pmd_pcap/Makefile b/lib/librte_pmd_pcap/Makefile
> index c5c214d..fff5572 100644
> --- a/lib/librte_pmd_pcap/Makefile
> +++ b/lib/librte_pmd_pcap/Makefile
> @@ -40,6 +40,8 @@ LIB = librte_pmd_pcap.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_pmd_pcap/rte_pmd_pcap_version.map b/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_pmd_ring/Makefile b/lib/librte_pmd_ring/Makefile
> index b57e421..25ad27f 100644
> --- a/lib/librte_pmd_ring/Makefile
> +++ b/lib/librte_pmd_ring/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_ring.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ring/rte_eth_ring_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_pmd_ring/rte_eth_ring.c b/lib/librte_pmd_ring/rte_eth_ring.c
> index 4f1b6ed..df7b583 100644
> --- a/lib/librte_pmd_ring/rte_eth_ring.c
> +++ b/lib/librte_pmd_ring/rte_eth_ring.c
> @@ -473,7 +473,7 @@ out:
> return ret;
> }
>
> -int
> +static int
> rte_pmd_ring_devinit(const char *name, const char *params)
> {
> struct rte_kvargs *kvlist;
> diff --git a/lib/librte_pmd_ring/rte_eth_ring.h b/lib/librte_pmd_ring/rte_eth_ring.h
> index e6ae19e..d36489a 100644
> --- a/lib/librte_pmd_ring/rte_eth_ring.h
> +++ b/lib/librte_pmd_ring/rte_eth_ring.h
> @@ -50,12 +50,6 @@ int rte_eth_from_rings(const char *name,
> int rte_eth_ring_pair_create(const char *name, const unsigned numa_node);
> int rte_eth_ring_pair_attach(const char *name, const unsigned numa_node);
>
> -/**
> - * For use by test apps only. Called as part of EAL init to set up any dummy NICs
> - * configured on command line.
> - */
> -int rte_pmd_ring_devinit(const char *name, const char *params);
> -
> #ifdef __cplusplus
> }
> #endif
> diff --git a/lib/librte_pmd_ring/rte_eth_ring_version.map b/lib/librte_pmd_ring/rte_eth_ring_version.map
> new file mode 100644
> index 0000000..5edaa3d
> --- /dev/null
> +++ b/lib/librte_pmd_ring/rte_eth_ring_version.map
> @@ -0,0 +1,10 @@
> +DPDK_1.8 {
> +
> + global:
> +
> + rte_eth_from_rings;
> + rte_eth_ring_pair_create;
> + rte_eth_ring_pair_attach;
> +
> + local: *;
> +};
> diff --git a/lib/librte_pmd_virtio/Makefile b/lib/librte_pmd_virtio/Makefile
> index 456095b..bf51bd9 100644
> --- a/lib/librte_pmd_virtio/Makefile
> +++ b/lib/librte_pmd_virtio/Makefile
> @@ -39,6 +39,7 @@ LIB = librte_pmd_virtio_uio.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
>
> #
> # all source are stored in SRCS-y
> diff --git a/lib/librte_pmd_virtio/rte_pmd_virtio_version.map b/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_pmd_vmxnet3/Makefile b/lib/librte_pmd_vmxnet3/Makefile
> index 6872c74..e5a1c6b 100644
> --- a/lib/librte_pmd_vmxnet3/Makefile
> +++ b/lib/librte_pmd_vmxnet3/Makefile
> @@ -66,6 +66,8 @@ endif
>
> VPATH += $(RTE_SDK)/lib/librte_pmd_vmxnet3/vmxnet3
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map b/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_pmd_xenvirt/Makefile b/lib/librte_pmd_xenvirt/Makefile
> index 01bfcaa..0a08b1b 100644
> --- a/lib/librte_pmd_xenvirt/Makefile
> +++ b/lib/librte_pmd_xenvirt/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_xenvirt.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map b/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> new file mode 100644
> index 0000000..66199b1
> --- /dev/null
> +++ b/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> @@ -0,0 +1,8 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_mempool_gntalloc_create;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_port/Makefile b/lib/librte_port/Makefile
> index 28793a5..e812bda 100644
> --- a/lib/librte_port/Makefile
> +++ b/lib/librte_port/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_port.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_port/rte_port_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map
> new file mode 100644
> index 0000000..57ccaa3
> --- /dev/null
> +++ b/lib/librte_port/rte_port_version.map
> @@ -0,0 +1,18 @@
> +DPDK_1.8 {
> + global:
> + rte_port_ring_reader_ops;
> + rte_port_ring_writer_ops;
> + rte_port_ethdev_reader_ops;
> + rte_port_ethdev_writer_ops;
> + rte_port_ring_reader_ipv4_frag_ops;
> + rte_port_ring_writer_ipv4_ras_ops;
> + rte_port_ring_reader_ops;
> + rte_port_ring_writer_ops;
> + rte_port_sched_reader_ops;
> + rte_port_sched_writer_ops;
> + rte_port_source_ops;
> + rte_port_sink_ops;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_power/Makefile b/lib/librte_power/Makefile
> index 6185812..26ee542 100644
> --- a/lib/librte_power/Makefile
> +++ b/lib/librte_power/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_power.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_power/rte_power_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_POWER) := rte_power.c
>
> diff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map
> new file mode 100644
> index 0000000..3b2375a
> --- /dev/null
> +++ b/lib/librte_power/rte_power_version.map
> @@ -0,0 +1,14 @@
> +DPDK_1.8 {
> + global:
> + rte_power_init;
> + rte_power_exit;
> + rte_power_freqs;
> + rte_power_get_freq;
> + rte_power_set_freq;
> + rte_power_freq_up;
> + rte_power_freq_down;
> + rte_power_freq_max;
> + rte_power_freq_min;
> +
> + local: *;
> +};
> diff --git a/lib/librte_ring/Makefile b/lib/librte_ring/Makefile
> index 2380a43..0adaa00 100644
> --- a/lib/librte_ring/Makefile
> +++ b/lib/librte_ring/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_ring.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_ring/rte_ring_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_RING) := rte_ring.c
>
> diff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map
> new file mode 100644
> index 0000000..6c28af9
> --- /dev/null
> +++ b/lib/librte_ring/rte_ring_version.map
> @@ -0,0 +1,12 @@
> +DPDK_1.8 {
> + global:
> + rte_ring_get_memsize;
> + rte_ring_init;
> + rte_ring_create;
> + rte_ring_set_water_mark;
> + rte_ring_dump;
> + rte_ring_list_dump;
> + rte_ring_lookup;
> +
> + local: *;
> +};
> diff --git a/lib/librte_sched/Makefile b/lib/librte_sched/Makefile
> index 1a25b21..205fb7a 100644
> --- a/lib/librte_sched/Makefile
> +++ b/lib/librte_sched/Makefile
> @@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
>
> CFLAGS_rte_red.o := -D_GNU_SOURCE
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_sched/rte_sched_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map
> new file mode 100644
> index 0000000..b5877ce
> --- /dev/null
> +++ b/lib/librte_sched/rte_sched_version.map
> @@ -0,0 +1,22 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_approx;
> + rte_red_rt_data_init;
> + rte_red_config_init;
> + rte_sched_port_config;
> + rte_sched_port_free;
> + rte_sched_subport_config;
> + rte_sched_pipe_config;
> + rte_sched_port_get_memory_footprint;
> + rte_sched_subport_read_stats;
> + rte_sched_queue_read_stats;
> + rte_sched_port_enqueue;
> + rte_sched_port_dequeue;
> + rte_red_log2_1_minus_Wq;
> + rte_red_pow2_frac_inv;
> + rte_red_rand_val;
> + rte_red_rand_seed;
> +
> + local: *;
> +};
> diff --git a/lib/librte_table/Makefile b/lib/librte_table/Makefile
> index dd684cc..5b54acc 100644
> --- a/lib/librte_table/Makefile
> +++ b/lib/librte_table/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_table.a
> CFLAGS += -O3
> CFLAGS += $(WERROR_FLAGS)
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_table/rte_table_version.map
> +
> #
> # all source are stored in SRCS-y
> #
> diff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map
> new file mode 100644
> index 0000000..86f16b8
> --- /dev/null
> +++ b/lib/librte_table/rte_table_version.map
> @@ -0,0 +1,22 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_table_stub_ops;
> + rte_table_lpm_ops;
> + rte_table_array_ops;
> + rte_table_hash_key8_lru_ops;
> + rte_table_hash_key8_lru_dosig_ops;
> + rte_table_hash_key8_ext_ops;
> + rte_table_hash_key8_ext_dosig_ops;
> + rte_table_lpm_ipv6_ops;
> + rte_table_hash_key16_lru_ops;
> + rte_table_hash_key32_lru_ops;
> + rte_table_hash_key16_ext_ops;
> + rte_table_hash_key32_ext_ops;
> + rte_table_acl_ops;
> + rte_table_hash_lru_ops;
> + rte_table_hash_ext_ops;
> +
> + local: *;
> +};
> +
> diff --git a/lib/librte_timer/Makefile b/lib/librte_timer/Makefile
> index 07eb0c6..f703e5f 100644
> --- a/lib/librte_timer/Makefile
> +++ b/lib/librte_timer/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_timer.a
>
> CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_timer/rte_timer_version.map
> +
> # all source are stored in SRCS-y
> SRCS-$(CONFIG_RTE_LIBRTE_TIMER) := rte_timer.c
>
> diff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map
> new file mode 100644
> index 0000000..00b6b52
> --- /dev/null
> +++ b/lib/librte_timer/rte_timer_version.map
> @@ -0,0 +1,16 @@
> +DPDK_1.8 {
> + global:
> +
> + rte_timer_subsystem_init;
> + rte_timer_init;
> + rte_timer_reset;
> + rte_timer_reset_sync;
> + rte_timer_stop;
> + rte_timer_stop_sync;
> + rte_timer_pending;
> + rte_timer_manage;
> + rte_timer_dump_stats;
> +
> + local: *;
> +};
> +
> --
> 1.9.3
>
May need to update some of the version maps with new functions in head.
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
On Wed, Oct 01, 2014 at 12:25:52PM +0100, Sergio Gonzalez Monroy wrote:
> On Mon, Sep 15, 2014 at 03:23:49PM -0400, Neil Horman wrote:
> > Add linker version script files to each DPDK library to put a stake in the
> > ground from which we can start cleaning up API's
> >
> > Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> > CC: Thomas Monjalon <thomas.monjalon@6wind.com>
> > CC: "Richardson, Bruce" <bruce.richardson@intel.com>
> > ---
> > lib/librte_acl/Makefile | 2 +
> > lib/librte_acl/rte_acl_version.map | 19 ++++
> > lib/librte_cfgfile/Makefile | 2 +
> > lib/librte_cfgfile/rte_cfgfile_version.map | 14 +++
> > lib/librte_cmdline/Makefile | 2 +
> > lib/librte_cmdline/rte_cmdline_version.map | 69 +++++++++++++
> > lib/librte_distributor/Makefile | 2 +
> > lib/librte_distributor/rte_distributor_version.map | 16 +++
> > lib/librte_eal/bsdapp/eal/Makefile | 2 +
> > lib/librte_eal/bsdapp/eal/rte_eal_version.map | 89 +++++++++++++++++
> > lib/librte_eal/linuxapp/eal/Makefile | 2 +
> > lib/librte_eal/linuxapp/eal/rte_eal_version.map | 89 +++++++++++++++++
> > lib/librte_ether/Makefile | 2 +
> > lib/librte_ether/rte_ether_version.map | 108 +++++++++++++++++++++
> > lib/librte_hash/Makefile | 2 +
> > lib/librte_hash/rte_hash_version.map | 18 ++++
> > lib/librte_ip_frag/Makefile | 2 +
> > lib/librte_ip_frag/rte_ipfrag_version.map | 14 +++
> > lib/librte_ivshmem/Makefile | 2 +
> > lib/librte_ivshmem/rte_ivshmem_version.map | 13 +++
> > lib/librte_kni/Makefile | 2 +
> > lib/librte_kni/rte_kni_version.map | 19 ++++
> > lib/librte_kvargs/Makefile | 2 +
> > lib/librte_kvargs/rte_kvargs_version.map | 10 ++
> > lib/librte_lpm/Makefile | 2 +
> > lib/librte_lpm/rte_lpm_version.map | 24 +++++
> > lib/librte_malloc/Makefile | 2 +
> > lib/librte_malloc/rte_malloc_version.map | 19 ++++
> > lib/librte_mbuf/Makefile | 2 +
> > lib/librte_mbuf/rte_mbuf_version.map | 12 +++
> > lib/librte_mempool/Makefile | 2 +
> > lib/librte_mempool/rte_mempool_version.map | 18 ++++
> > lib/librte_meter/Makefile | 2 +
> > lib/librte_meter/rte_meter_version.map | 13 +++
> > lib/librte_pipeline/Makefile | 2 +
> > lib/librte_pipeline/rte_pipeline_version.map | 23 +++++
> > lib/librte_pmd_bond/Makefile | 2 +
> > lib/librte_pmd_bond/rte_eth_bond_version.map | 20 ++++
> > lib/librte_pmd_e1000/Makefile | 2 +
> > lib/librte_pmd_e1000/rte_pmd_e1000_version.map | 5 +
> > lib/librte_pmd_i40e/Makefile | 2 +
> > lib/librte_pmd_i40e/rte_pmd_i40e_version.map | 5 +
> > lib/librte_pmd_ixgbe/Makefile | 2 +
> > lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map | 5 +
> > lib/librte_pmd_pcap/Makefile | 2 +
> > lib/librte_pmd_pcap/rte_pmd_pcap_version.map | 5 +
> > lib/librte_pmd_ring/Makefile | 2 +
> > lib/librte_pmd_ring/rte_eth_ring.c | 2 +-
> > lib/librte_pmd_ring/rte_eth_ring.h | 6 --
> > lib/librte_pmd_ring/rte_eth_ring_version.map | 10 ++
> > lib/librte_pmd_virtio/Makefile | 1 +
> > lib/librte_pmd_virtio/rte_pmd_virtio_version.map | 5 +
> > lib/librte_pmd_vmxnet3/Makefile | 2 +
> > lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map | 5 +
> > lib/librte_pmd_xenvirt/Makefile | 2 +
> > lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map | 8 ++
> > lib/librte_port/Makefile | 2 +
> > lib/librte_port/rte_port_version.map | 18 ++++
> > lib/librte_power/Makefile | 2 +
> > lib/librte_power/rte_power_version.map | 14 +++
> > lib/librte_ring/Makefile | 2 +
> > lib/librte_ring/rte_ring_version.map | 12 +++
> > lib/librte_sched/Makefile | 2 +
> > lib/librte_sched/rte_sched_version.map | 22 +++++
> > lib/librte_table/Makefile | 2 +
> > lib/librte_table/rte_table_version.map | 22 +++++
> > lib/librte_timer/Makefile | 2 +
> > lib/librte_timer/rte_timer_version.map | 16 +++
> > 68 files changed, 825 insertions(+), 7 deletions(-)
> > create mode 100644 lib/librte_acl/rte_acl_version.map
> > create mode 100644 lib/librte_cfgfile/rte_cfgfile_version.map
> > create mode 100644 lib/librte_cmdline/rte_cmdline_version.map
> > create mode 100644 lib/librte_distributor/rte_distributor_version.map
> > create mode 100644 lib/librte_eal/bsdapp/eal/rte_eal_version.map
> > create mode 100644 lib/librte_eal/linuxapp/eal/rte_eal_version.map
> > create mode 100644 lib/librte_ether/rte_ether_version.map
> > create mode 100644 lib/librte_hash/rte_hash_version.map
> > create mode 100644 lib/librte_ip_frag/rte_ipfrag_version.map
> > create mode 100644 lib/librte_ivshmem/rte_ivshmem_version.map
> > create mode 100644 lib/librte_kni/rte_kni_version.map
> > create mode 100644 lib/librte_kvargs/rte_kvargs_version.map
> > create mode 100644 lib/librte_lpm/rte_lpm_version.map
> > create mode 100644 lib/librte_malloc/rte_malloc_version.map
> > create mode 100644 lib/librte_mbuf/rte_mbuf_version.map
> > create mode 100644 lib/librte_mempool/rte_mempool_version.map
> > create mode 100644 lib/librte_meter/rte_meter_version.map
> > create mode 100644 lib/librte_pipeline/rte_pipeline_version.map
> > create mode 100644 lib/librte_pmd_bond/rte_eth_bond_version.map
> > create mode 100644 lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> > create mode 100644 lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> > create mode 100644 lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> > create mode 100644 lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> > create mode 100644 lib/librte_pmd_ring/rte_eth_ring_version.map
> > create mode 100644 lib/librte_pmd_virtio/rte_pmd_virtio_version.map
> > create mode 100644 lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> > create mode 100644 lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> > create mode 100644 lib/librte_port/rte_port_version.map
> > create mode 100644 lib/librte_power/rte_power_version.map
> > create mode 100644 lib/librte_ring/rte_ring_version.map
> > create mode 100644 lib/librte_sched/rte_sched_version.map
> > create mode 100644 lib/librte_table/rte_table_version.map
> > create mode 100644 lib/librte_timer/rte_timer_version.map
> >
> > diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile
> > index 65e566d..1f96645 100644
> > --- a/lib/librte_acl/Makefile
> > +++ b/lib/librte_acl/Makefile
> > @@ -37,6 +37,8 @@ LIB = librte_acl.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_acl/rte_acl_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
> >
> > diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
> > new file mode 100644
> > index 0000000..4480690
> > --- /dev/null
> > +++ b/lib/librte_acl/rte_acl_version.map
> > @@ -0,0 +1,19 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_acl_create;
> > + rte_acl_find_existing;
> > + rte_acl_free;
> > + rte_acl_add_rules;
> > + rte_acl_reset_rules;
> > + rte_acl_build;
> > + rte_acl_reset;
> > + rte_acl_classify;
> > + rte_acl_dump;
> > + rte_acl_list_dump;
> > + rte_acl_ipv4vlan_add_rules;
> > + rte_acl_ipv4vlan_build;
> > + rte_acl_classify_scalar;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_cfgfile/Makefile b/lib/librte_cfgfile/Makefile
> > index 55e8701..e655098 100644
> > --- a/lib/librte_cfgfile/Makefile
> > +++ b/lib/librte_cfgfile/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_cfgfile.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_cfgfile/rte_cfgfile_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map
> > new file mode 100644
> > index 0000000..10ecea6
> > --- /dev/null
> > +++ b/lib/librte_cfgfile/rte_cfgfile_version.map
> > @@ -0,0 +1,14 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_cfgfile_load;
> > + rte_cfgfile_num_sections;
> > + rte_cfgfile_sections;
> > + rte_cfgfile_has_section;
> > + rte_cfgfile_section_num_entries;
> > + rte_cfgfile_section_entries;
> > + rte_cfgfile_get_entry;
> > + rte_cfgfile_has_entry;
> > + rte_cfgfile_close;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_cmdline/Makefile b/lib/librte_cmdline/Makefile
> > index 7eae449..1a47173 100644
> > --- a/lib/librte_cmdline/Makefile
> > +++ b/lib/librte_cmdline/Makefile
> > @@ -36,6 +36,8 @@ LIB = librte_cmdline.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_cmdline/rte_cmdline_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := cmdline.c
> > SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_cirbuf.c
> > diff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map
> > new file mode 100644
> > index 0000000..7616eff
> > --- /dev/null
> > +++ b/lib/librte_cmdline/rte_cmdline_version.map
> > @@ -0,0 +1,69 @@
> > +DPDK_1.8 {
> > + global:
> > + cmdline_new;
> > + cmdline_set_prompt;
> > + cmdline_free;
> > + cmdline_printf;
> > + cmdline_in;
> > + cmdline_write_char;
> > + cmdline_interact;
> > + cmdline_quit;
> > + cmdline_parse;
> > + cmdline_complete;
> > + cmdline_isendoftoken;
> > + cmdline_parse_num;
> > + cmdline_get_help_num;
> > + cmdline_parse_ipaddr;
> > + cmdline_get_help_ipaddr;
> > + cmdline_parse_etheraddr;
> > + cmdline_get_help_etheraddr;
> > + cmdline_parse_string;
> > + cmdline_complete_get_nb_string;
> > + cmdline_complete_get_elt_string;
> > + cmdline_get_help_string;
> > + cmdline_parse_portlist;
> > + cmdline_get_help_portlist;
> > + cmdline_token_string_ops;
> > + cmdline_token_num_ops;
> > + cmdline_token_string_ops;
> > + cmdline_token_ipaddr_ops;
> > + cmdline_token_etheraddr_ops;
> > + vt100_init;
> > + vt100_parser;
> > + cmdline_file_new;
> > + cmdline_stdin_new;
> > + cmdline_stdin_exit;
> > + cirbuf_init;
> > + cirbuf_add_head_safe;
> > + cirbuf_add_head;
> > + cirbuf_add_tail_safe;
> > + cirbuf_add_tail;
> > + cirbuf_del_head_safe;
> > + cirbuf_del_head;
> > + cirbuf_del_tail_safe;
> > + cirbuf_del_tail;
> > + cirbuf_get_head;
> > + cirbuf_get_tail;
> > + cirbuf_add_buf_head;
> > + cirbuf_add_buf_tail;
> > + cirbuf_del_buf_head;
> > + cirbuf_del_buf_tail;
> > + cirbuf_get_buf_head;
> > + cirbuf_get_buf_tail;
> > + cirbuf_align_left;
> > + cirbuf_align_right;
> > + rdline_init;
> > + rdline_newline;
> > + rdline_stop;
> > + rdline_quit;
> > + rdline_restart;
> > + rdline_redisplay;
> > + rdline_reset;
> > + rdline_char_in;
> > + rdline_get_buffer;
> > + rdline_add_history;
> > + rdline_clear_history;
> > + rdline_get_history_item;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_distributor/Makefile b/lib/librte_distributor/Makefile
> > index 36699f8..97d8bbb 100644
> > --- a/lib/librte_distributor/Makefile
> > +++ b/lib/librte_distributor/Makefile
> > @@ -37,6 +37,8 @@ LIB = librte_distributor.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_distributor/rte_distributor_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) := rte_distributor.c
> >
> > diff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map
> > new file mode 100644
> > index 0000000..b81ddc8
> > --- /dev/null
> > +++ b/lib/librte_distributor/rte_distributor_version.map
> > @@ -0,0 +1,16 @@
> > +DPDK_1.8 {
> > +
> > + global:
> > + rte_distributor_create;
> > + rte_distributor_process;
> > + rte_distributor_returned_pkts;
> > + rte_distributor_flush;
> > + rte_distributor_clear_returns;
> > + rte_distributor_get_pkt;
> > + rte_distributor_return_pkt;
> > + rte_distributor_request_pkt;
> > + rte_distributor_poll_pkt;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_eal/bsdapp/eal/Makefile b/lib/librte_eal/bsdapp/eal/Makefile
> > index 8f44273..2caaf00 100644
> > --- a/lib/librte_eal/bsdapp/eal/Makefile
> > +++ b/lib/librte_eal/bsdapp/eal/Makefile
> > @@ -45,6 +45,8 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_ring
> > CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_pcap
> > CFLAGS += $(WERROR_FLAGS) -O3
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> > +
> > # specific to linuxapp exec-env
> > SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) := eal.c
> > SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) += eal_memory.c
> > diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> > new file mode 100644
> > index 0000000..71788e1
> > --- /dev/null
> > +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> > @@ -0,0 +1,89 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_eal_alarm_set;
> > + rte_eal_alarm_cancel;
> > + rte_exit;
> > + rte_cpu_get_flag_enabled;
> > + rte_cpu_check_supported;
> > + rte_get_tsc_hz;
> > + rte_get_hpet_cycles;
> > + rte_get_hpet_hz;
> > + rte_eal_hpet_init;
> > + rte_delay_us;
> > + rte_dump_stack;
> > + rte_dump_registers;
> > + __rte_panic;
> > + rte_eal_devargs_add;
> > + rte_eal_devargs_type_count;
> > + rte_eal_devargs_dump;
> > + rte_eal_driver_register;
> > + rte_eal_driver_unregister;
> > + rte_eal_dev_init;
> > + rte_eal_init;
> > + rte_set_application_usage_hook;
> > + rte_eal_has_hugepages;
> > + rte_strerror;
> > + rte_hexdump;
> > + rte_memdump;
> > + rte_intr_callback_register;
> > + rte_intr_callback_unregister;
> > + rte_intr_enable;
> > + rte_intr_disable;
> > + rte_eal_remote_launch;
> > + rte_eal_mp_remote_launch;
> > + rte_eal_get_lcore_state;
> > + rte_eal_wait_lcore;
> > + rte_eal_mp_wait_lcore;
> > + rte_openlog_stream;
> > + rte_set_log_level;
> > + rte_set_log_type;
> > + rte_log_cur_msg_loglevel;
> > + rte_log_cur_msg_logtype;
> > + rte_log_set_history;
> > + rte_log_dump_history;
> > + rte_log_add_in_history;
> > + rte_log;
> > + rte_vlog;
> > + rte_mem_lock_page;
> > + rte_mem_virt2phy;
> > + rte_eal_get_physmem_layout;
> > + rte_dump_physmem_layout;
> > + rte_eal_get_physmem_size;
> > + rte_memory_get_nchannel;
> > + rte_memory_get_nrank;
> > + rte_mem_phy2mch;
> > + rte_xen_dom0_memory_init;
> > + rte_xen_dom0_memory_attach;
> > + rte_memzone_reserve;
> > + rte_memzone_reserve_aligned;
> > + rte_memzone_reserve_bounded;
> > + rte_memzone_lookup;
> > + rte_memzone_dump;
> > + rte_memzone_walk;
> > + rte_eal_pci_probe;
> > + rte_eal_pci_dump;
> > + rte_eal_pci_register;
> > + rte_eal_pci_unregister;
> > + rte_snprintf;
> > + rte_strsplit;
> > + rte_eal_tailq_reserve;
> > + rte_eal_tailq_reserve_by_idx;
> > + rte_dump_tailq;
> > + rte_eal_tailq_lookup;
> > + rte_eal_tailq_lookup_by_idx;
> > + lcore_config;
> > + per_lcore__lcore_id;
> > + eal_timer_source;
> > + rte_cycles_vmware_tsc_map;
> > + rte_eal_get_configuration;
> > + rte_logs;
> > + rte_eal_lcore_role;
> > + test_mp_secondary;
> > + rte_eal_process_type;
> > + per_lcore__rte_errno;
> > + pci_device_list;
> > + devargs_list;
> > + eal_parse_sysfs_value;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_eal/linuxapp/eal/Makefile b/lib/librte_eal/linuxapp/eal/Makefile
> > index 756d6b0..254d59c 100644
> > --- a/lib/librte_eal/linuxapp/eal/Makefile
> > +++ b/lib/librte_eal/linuxapp/eal/Makefile
> > @@ -33,6 +33,8 @@ include $(RTE_SDK)/mk/rte.vars.mk
> >
> > LIB = librte_eal.a
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> > +
> > VPATH += $(RTE_SDK)/lib/librte_eal/common
> >
> > CFLAGS += -I$(SRCDIR)/include
> > diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> > new file mode 100644
> > index 0000000..71788e1
> > --- /dev/null
> > +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> > @@ -0,0 +1,89 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_eal_alarm_set;
> > + rte_eal_alarm_cancel;
> > + rte_exit;
> > + rte_cpu_get_flag_enabled;
> > + rte_cpu_check_supported;
> > + rte_get_tsc_hz;
> > + rte_get_hpet_cycles;
> > + rte_get_hpet_hz;
> > + rte_eal_hpet_init;
> > + rte_delay_us;
> > + rte_dump_stack;
> > + rte_dump_registers;
> > + __rte_panic;
> > + rte_eal_devargs_add;
> > + rte_eal_devargs_type_count;
> > + rte_eal_devargs_dump;
> > + rte_eal_driver_register;
> > + rte_eal_driver_unregister;
> > + rte_eal_dev_init;
> > + rte_eal_init;
> > + rte_set_application_usage_hook;
> > + rte_eal_has_hugepages;
> > + rte_strerror;
> > + rte_hexdump;
> > + rte_memdump;
> > + rte_intr_callback_register;
> > + rte_intr_callback_unregister;
> > + rte_intr_enable;
> > + rte_intr_disable;
> > + rte_eal_remote_launch;
> > + rte_eal_mp_remote_launch;
> > + rte_eal_get_lcore_state;
> > + rte_eal_wait_lcore;
> > + rte_eal_mp_wait_lcore;
> > + rte_openlog_stream;
> > + rte_set_log_level;
> > + rte_set_log_type;
> > + rte_log_cur_msg_loglevel;
> > + rte_log_cur_msg_logtype;
> > + rte_log_set_history;
> > + rte_log_dump_history;
> > + rte_log_add_in_history;
> > + rte_log;
> > + rte_vlog;
> > + rte_mem_lock_page;
> > + rte_mem_virt2phy;
> > + rte_eal_get_physmem_layout;
> > + rte_dump_physmem_layout;
> > + rte_eal_get_physmem_size;
> > + rte_memory_get_nchannel;
> > + rte_memory_get_nrank;
> > + rte_mem_phy2mch;
> > + rte_xen_dom0_memory_init;
> > + rte_xen_dom0_memory_attach;
> > + rte_memzone_reserve;
> > + rte_memzone_reserve_aligned;
> > + rte_memzone_reserve_bounded;
> > + rte_memzone_lookup;
> > + rte_memzone_dump;
> > + rte_memzone_walk;
> > + rte_eal_pci_probe;
> > + rte_eal_pci_dump;
> > + rte_eal_pci_register;
> > + rte_eal_pci_unregister;
> > + rte_snprintf;
> > + rte_strsplit;
> > + rte_eal_tailq_reserve;
> > + rte_eal_tailq_reserve_by_idx;
> > + rte_dump_tailq;
> > + rte_eal_tailq_lookup;
> > + rte_eal_tailq_lookup_by_idx;
> > + lcore_config;
> > + per_lcore__lcore_id;
> > + eal_timer_source;
> > + rte_cycles_vmware_tsc_map;
> > + rte_eal_get_configuration;
> > + rte_logs;
> > + rte_eal_lcore_role;
> > + test_mp_secondary;
> > + rte_eal_process_type;
> > + per_lcore__rte_errno;
> > + pci_device_list;
> > + devargs_list;
> > + eal_parse_sysfs_value;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_ether/Makefile b/lib/librte_ether/Makefile
> > index b310f8b..f40b5cc 100644
> > --- a/lib/librte_ether/Makefile
> > +++ b/lib/librte_ether/Makefile
> > @@ -39,6 +39,8 @@ LIB = libethdev.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_ether/rte_ether_version.map
> > +
> > SRCS-y += rte_ethdev.c
> >
> > #
> > diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map
> > new file mode 100644
> > index 0000000..41952ab
> > --- /dev/null
> > +++ b/lib/librte_ether/rte_ether_version.map
> > @@ -0,0 +1,108 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_eth_driver_register;
> > + rte_eth_dev_configure;
> > + rte_eth_rx_queue_setup;
> > + rte_eth_tx_queue_setup;
> > + rte_eth_dev_socket_id;
> > + rte_eth_dev_rx_queue_start;
> > + rte_eth_dev_rx_queue_stop;
> > + rte_eth_dev_tx_queue_start;
> > + rte_eth_dev_tx_queue_stop;
> > + rte_eth_dev_start;
> > + rte_eth_dev_stop;
> > + rte_eth_dev_set_link_up;
> > + rte_eth_dev_set_link_down;
> > + rte_eth_dev_close;
> > + rte_eth_promiscuous_enable;
> > + rte_eth_promiscuous_disable;
> > + rte_eth_promiscuous_get;
> > + rte_eth_allmulticast_enable;
> > + rte_eth_allmulticast_disable;
> > + rte_eth_allmulticast_get;
> > + rte_eth_link;
> > + rte_eth_link_get_nowait;
> > + rte_eth_stats;
> > + rte_eth_stats_reset;
> > + rte_eth_dev_set_tx_queue_stats_mapping;
> > + rte_eth_dev_set_rx_queue_stats_mapping;
> > + rte_eth_macaddr_get;
> > + rte_eth_dev_info_get;
> > + rte_eth_dev_get_mtu;
> > + rte_eth_dev_set_mtu;
> > + rte_eth_dev_vlan_filter;
> > + rte_eth_dev_set_vlan_strip_on_queue;
> > + rte_eth_dev_set_vlan_ether_type;
> > + rte_eth_dev_set_vlan_offload;
> > + rte_eth_dev_get_vlan_offload;
> > + rte_eth_dev_set_vlan_pvid;
> > + rte_eth_rx_burst;
> > + rte_eth_rx_queue_count;
> > + rte_eth_rx_descriptor_done;
> > + rte_eth_tx_burst;
> > + rte_eth_dev_fdir_add_signature_filter;
> > + rte_eth_dev_fdir_update_signature_filter;
> > + rte_eth_dev_fdir_remove_signature_filter;
> > + rte_eth_dev_fdir_get_infos;
> > + rte_eth_dev_fdir_add_perfect_filter;
> > + rte_eth_dev_fdir_update_perfect_filter;
> > + rte_eth_dev_fdir_remove_perfect_filter;
> > + rte_eth_dev_fdir_set_masks;
> > + rte_eth_dev_callback_register;
> > + rte_eth_dev_callback_unregister;
> > + rte_eth_dev_callback_process;
> > + rte_eth_led_on;
> > + rte_eth_led_off;
> > + rte_eth_dev_flow_ctrl_get;
> > + rte_eth_dev_flow_ctrl_set;
> > + rte_eth_dev_priority_flow_ctrl_set;
> > + rte_eth_dev_mac_addr_add;
> > + rte_eth_dev_mac_addr_remove;
> > + rte_eth_dev_rss_reta_update;
> > + rte_eth_dev_rss_reta_query;
> > + rte_eth_dev_uc_hash_table_set;
> > + rte_eth_dev_uc_all_hash_table_set;
> > + rte_eth_dev_set_vf_rxmode;
> > + rte_eth_dev_set_vf_tx;
> > + rte_eth_dev_set_vf_rx;
> > + rte_eth_dev_set_vf_vlan_filter;
> > + rte_eth_mirror_rule_set;
> > + rte_eth_mirror_rule_reset;
> > + rte_eth_set_queue_rate_limit;
> > + rte_eth_set_vf_rate_limit;
> > + rte_eth_dev_bypass_init;
> > + rte_eth_dev_bypass_state_show;
> > + rte_eth_dev_bypass_state_set;
> > + rte_eth_dev_bypass_event_show;
> > + rte_eth_dev_bypass_event_store;
> > + rte_eth_dev_wd_timeout_store;
> > + rte_eth_dev_bypass_ver_show;
> > + rte_eth_dev_bypass_wd_timeout_show;
> > + rte_eth_dev_bypass_wd_reset;
> > + rte_eth_dev_rss_hash_update;
> > + rte_eth_dev_rss_hash_conf_get;
> > + rte_eth_dev_add_syn_filter;
> > + rte_eth_dev_remove_syn_filter;
> > + rte_eth_dev_get_syn_filter;
> > + rte_eth_dev_add_ethertype_filter;
> > + rte_eth_dev_remove_ethertype_filter;
> > + rte_eth_dev_get_ethertype_filter;
> > + rte_eth_dev_add_2tuple_filter;
> > + rte_eth_dev_remove_2tuple_filter;
> > + rte_eth_dev_get_2tuple_filter;
> > + rte_eth_dev_add_5tuple_filter;
> > + rte_eth_dev_remove_5tuple_filter;
> > + rte_eth_dev_get_5tuple_filter;
> > + rte_eth_dev_add_flex_filter;
> > + rte_eth_dev_remove_flex_filter;
> > + rte_eth_dev_get_flex_filter;
> > + rte_eth_dev_count;
> > + rte_eth_link_get;
> > + rte_eth_devices;
> > + rte_eth_stats_get;
> > + rte_eth_dev_allocate;
> > + _rte_eth_dev_callback_process;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile
> > index 95e4c09..a449ec2 100644
> > --- a/lib/librte_hash/Makefile
> > +++ b/lib/librte_hash/Makefile
> > @@ -37,6 +37,8 @@ LIB = librte_hash.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_hash/rte_hash_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_hash.c
> > SRCS-$(CONFIG_RTE_LIBRTE_HASH) += rte_fbk_hash.c
> > diff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map
> > new file mode 100644
> > index 0000000..2a34313
> > --- /dev/null
> > +++ b/lib/librte_hash/rte_hash_version.map
> > @@ -0,0 +1,18 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_fbk_hash_find_existing;
> > + rte_fbk_hash_create;
> > + rte_fbk_hash_free;
> > + rte_hash_create;
> > + rte_hash_find_existing;
> > + rte_hash_free;
> > + rte_hash_add_key;
> > + rte_hash_add_key_with_hash;
> > + rte_hash_del_key;
> > + rte_hash_del_key_with_hash;
> > + rte_hash_lookup;
> > + rte_hash_lookup_with_hash;
> > + rte_hash_lookup_bulk;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_ip_frag/Makefile b/lib/librte_ip_frag/Makefile
> > index 2265c93..ede5a89 100644
> > --- a/lib/librte_ip_frag/Makefile
> > +++ b/lib/librte_ip_frag/Makefile
> > @@ -37,6 +37,8 @@ LIB = librte_ip_frag.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_ip_frag/rte_ipfrag_version.map
> > +
> > #source files
> > SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_fragmentation.c
> > SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_reassembly.c
> > diff --git a/lib/librte_ip_frag/rte_ipfrag_version.map b/lib/librte_ip_frag/rte_ipfrag_version.map
> > new file mode 100644
> > index 0000000..afe1a0b
> > --- /dev/null
> > +++ b/lib/librte_ip_frag/rte_ipfrag_version.map
> > @@ -0,0 +1,14 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_ip_frag_table_create;
> > + rte_ipv6_fragment_packet;
> > + rte_ipv6_frag_reassemble_packet;
> > + rte_ipv4_fragment_packet;
> > + rte_ipv4_frag_reassemble_packet;
> > + rte_ip_frag_free_death_row;
> > + rte_ip_frag_table_statistics_dump;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_ivshmem/Makefile b/lib/librte_ivshmem/Makefile
> > index 536814c..be6f21a 100644
> > --- a/lib/librte_ivshmem/Makefile
> > +++ b/lib/librte_ivshmem/Makefile
> > @@ -36,6 +36,8 @@ LIB = librte_ivshmem.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
> >
> > +EXPORT_MAPS := $(RTE_SDK)/lib/librte_ivshmem/rte_ivshmem_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_IVSHMEM) := rte_ivshmem.c
> >
> > diff --git a/lib/librte_ivshmem/rte_ivshmem_version.map b/lib/librte_ivshmem/rte_ivshmem_version.map
> > new file mode 100644
> > index 0000000..a204339
> > --- /dev/null
> > +++ b/lib/librte_ivshmem/rte_ivshmem_version.map
> > @@ -0,0 +1,13 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_ivshmem_metadata_create;
> > + rte_ivshmem_metadata_add_memzone;
> > + rte_ivshmem_metadata_add_ring;
> > + rte_ivshmem_metadata_add_mempool;
> > + rte_ivshmem_metadata_cmdline_generate;
> > + rte_ivshmem_metadata_dump;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_kni/Makefile b/lib/librte_kni/Makefile
> > index 5267304..c119fc1 100644
> > --- a/lib/librte_kni/Makefile
> > +++ b/lib/librte_kni/Makefile
> > @@ -36,6 +36,8 @@ LIB = librte_kni.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_kni/rte_kni_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_KNI) := rte_kni.c
> >
> > diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
> > new file mode 100644
> > index 0000000..58fbc1f
> > --- /dev/null
> > +++ b/lib/librte_kni/rte_kni_version.map
> > @@ -0,0 +1,19 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_kni_alloc;
> > + rte_kni_create;
> > + rte_kni_release;
> > + rte_kni_handle_request;
> > + rte_kni_rx_burst;
> > + rte_kni_tx_burst;
> > + rte_kni_get_port_id;
> > + rte_kni_get;
> > + rte_kni_info_get;
> > + rte_kni_register_handlers;
> > + rte_kni_unregister_handlers;
> > + rte_kni_close;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_kvargs/Makefile b/lib/librte_kvargs/Makefile
> > index b09359a..83a42b1 100644
> > --- a/lib/librte_kvargs/Makefile
> > +++ b/lib/librte_kvargs/Makefile
> > @@ -38,6 +38,8 @@ LIB = librte_kvargs.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_kvargs/rte_kvargs_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) := rte_kvargs.c
> >
> > diff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map
> > new file mode 100644
> > index 0000000..7873c8c
> > --- /dev/null
> > +++ b/lib/librte_kvargs/rte_kvargs_version.map
> > @@ -0,0 +1,10 @@
> > +DPDK_1.8 {
> > +
> > + global:
> > + rte_kvargs_parse;
> > + rte_kvargs_free;
> > + rte_kvargs_process;
> > + rte_kvargs_count;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_lpm/Makefile b/lib/librte_lpm/Makefile
> > index fa94163..05de8d9 100644
> > --- a/lib/librte_lpm/Makefile
> > +++ b/lib/librte_lpm/Makefile
> > @@ -37,6 +37,8 @@ LIB = librte_lpm.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_lpm/rte_lpm_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_LPM) := rte_lpm.c rte_lpm6.c
> >
> > diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
> > new file mode 100644
> > index 0000000..8ae9318
> > --- /dev/null
> > +++ b/lib/librte_lpm/rte_lpm_version.map
> > @@ -0,0 +1,24 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_lpm_create;
> > + rte_lpm_find_existing;
> > + rte_lpm_free;
> > + rte_lpm_add;
> > + rte_lpm_is_rule_present;
> > + rte_lpm_delete;
> > + rte_lpm_delete_all;
> > + rte_lpm6_create;
> > + rte_lpm6_find_existing;
> > + rte_lpm6_free;
> > + rte_lpm6_add;
> > + rte_lpm6_is_rule_present;
> > + rte_lpm6_delete;
> > + rte_lpm6_delete_bulk_func;
> > + rte_lpm6_delete_all;
> > + rte_lpm6_lookup;
> > + rte_lpm6_lookup_bulk_func;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_malloc/Makefile b/lib/librte_malloc/Makefile
> > index ba87e34..1a5c288 100644
> > --- a/lib/librte_malloc/Makefile
> > +++ b/lib/librte_malloc/Makefile
> > @@ -36,6 +36,8 @@ LIB = librte_malloc.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_malloc/rte_malloc_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_MALLOC) := rte_malloc.c malloc_elem.c malloc_heap.c
> >
> > diff --git a/lib/librte_malloc/rte_malloc_version.map b/lib/librte_malloc/rte_malloc_version.map
> > new file mode 100644
> > index 0000000..77db879
> > --- /dev/null
> > +++ b/lib/librte_malloc/rte_malloc_version.map
> > @@ -0,0 +1,19 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_malloc;
> > + rte_zmalloc;
> > + rte_calloc;
> > + rte_realloc;
> > + rte_malloc_socket;
> > + rte_zmalloc_socket;
> > + rte_calloc_socket;
> > + rte_free;
> > + rte_malloc_validate;
> > + rte_malloc_get_socket_stats;
> > + rte_malloc_dump_stats;
> > + rte_malloc_set_limit;
> > + rte_malloc_virt2phy;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_mbuf/Makefile b/lib/librte_mbuf/Makefile
> > index 9b45ba4..5cd4941 100644
> > --- a/lib/librte_mbuf/Makefile
> > +++ b/lib/librte_mbuf/Makefile
> > @@ -36,6 +36,8 @@ LIB = librte_mbuf.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_mbuf/rte_mbuf_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_MBUF) := rte_mbuf.c
> >
> > diff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map
> > new file mode 100644
> > index 0000000..55e352b
> > --- /dev/null
> > +++ b/lib/librte_mbuf/rte_mbuf_version.map
> > @@ -0,0 +1,12 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_mbuf_sanity_check;
> > + rte_ctrlmbuf_init;
> > + rte_pktmbuf_init;
> > + rte_pktmbuf_pool_init;
> > + rte_pktmbuf_dump;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_mempool/Makefile b/lib/librte_mempool/Makefile
> > index 9939e10..07b5b4e 100644
> > --- a/lib/librte_mempool/Makefile
> > +++ b/lib/librte_mempool/Makefile
> > @@ -36,6 +36,8 @@ LIB = librte_mempool.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_mempool/rte_mempool_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool.c
> > ifeq ($(CONFIG_RTE_LIBRTE_XEN_DOM0),y)
> > diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map
> > new file mode 100644
> > index 0000000..7a19982
> > --- /dev/null
> > +++ b/lib/librte_mempool/rte_mempool_version.map
> > @@ -0,0 +1,18 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_mempool_create;
> > + rte_mempool_xmem_create;
> > + rte_dom0_mempool_create;
> > + rte_mempool_dump;
> > + rte_mempool_audit;
> > + rte_mempool_list_dump;
> > + rte_mempool_lookup;
> > + rte_mempool_calc_obj_size;
> > + rte_mempool_xmem_size;
> > + rte_mempool_xmem_usage;
> > + rte_mempool_walk;
> > + rte_mempool_count;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_meter/Makefile b/lib/librte_meter/Makefile
> > index b25c0cc..0778690 100644
> > --- a/lib/librte_meter/Makefile
> > +++ b/lib/librte_meter/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_meter.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_meter/rte_meter_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
> > new file mode 100644
> > index 0000000..51a73b1
> > --- /dev/null
> > +++ b/lib/librte_meter/rte_meter_version.map
> > @@ -0,0 +1,13 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_meter_srtcm_config;
> > + rte_meter_trtcm_config;
> > + rte_meter_srtcm_color_blind_check;
> > + rte_meter_srtcm_color_aware_check;
> > + rte_meter_trtcm_color_blind_check;
> > + rte_meter_trtcm_color_aware_check;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_pipeline/Makefile b/lib/librte_pipeline/Makefile
> > index cf8fde8..5465d00 100644
> > --- a/lib/librte_pipeline/Makefile
> > +++ b/lib/librte_pipeline/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_pipeline.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pipeline/rte_pipeline_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map
> > new file mode 100644
> > index 0000000..f868b96
> > --- /dev/null
> > +++ b/lib/librte_pipeline/rte_pipeline_version.map
> > @@ -0,0 +1,23 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_pipeline_create;
> > + rte_pipeline_free;
> > + rte_pipeline_check;
> > + rte_pipeline_run;
> > + rte_pipeline_flush;
> > + rte_pipeline_table_create;
> > + rte_pipeline_table_default_entry_add;
> > + rte_pipeline_table_default_entry_delete;
> > + rte_pipeline_table_entry_add;
> > + rte_pipeline_table_entry_delete;
> > + rte_pipeline_port_in_create;
> > + rte_pipeline_port_in_connect_to_table;
> > + rte_pipeline_port_in_enable;
> > + rte_pipeline_port_in_disable;
> > + rte_pipeline_port_out_create;
> > + rte_pipeline_port_out_packet_insert;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_pmd_bond/Makefile b/lib/librte_pmd_bond/Makefile
> > index 953d75e..5b14ce2 100644
> > --- a/lib/librte_pmd_bond/Makefile
> > +++ b/lib/librte_pmd_bond/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_pmd_bond.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_bond/rte_eth_bond_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_pmd_bond/rte_eth_bond_version.map b/lib/librte_pmd_bond/rte_eth_bond_version.map
> > new file mode 100644
> > index 0000000..17f0a1f
> > --- /dev/null
> > +++ b/lib/librte_pmd_bond/rte_eth_bond_version.map
> > @@ -0,0 +1,20 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_eth_bond_create;
> > + rte_eth_bond_slave_add;
> > + rte_eth_bond_slave_remove;
> > + rte_eth_bond_mode_set;
> > + rte_eth_bond_mode_get;
> > + rte_eth_bond_primary_set;
> > + rte_eth_bond_primary_get;
> > + rte_eth_bond_slaves_get;
> > + rte_eth_bond_active_slaves_get;
> > + rte_eth_bond_mac_address_set;
> > + rte_eth_bond_mac_address_reset;
> > + rte_eth_bond_xmit_policy_set;
> > + rte_eth_bond_xmit_policy_get;
> > +
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_pmd_e1000/Makefile b/lib/librte_pmd_e1000/Makefile
> > index 14bc4a2..e225bfe 100644
> > --- a/lib/librte_pmd_e1000/Makefile
> > +++ b/lib/librte_pmd_e1000/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_pmd_e1000.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> > +
> > ifeq ($(CC), icc)
> > #
> > # CFLAGS for icc
> > diff --git a/lib/librte_pmd_e1000/rte_pmd_e1000_version.map b/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> > new file mode 100644
> > index 0000000..cbc401f
> > --- /dev/null
> > +++ b/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> > @@ -0,0 +1,5 @@
> > +DPDK_1.8 {
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_pmd_i40e/Makefile b/lib/librte_pmd_i40e/Makefile
> > index 4b31675..cfbe816 100644
> > --- a/lib/librte_pmd_i40e/Makefile
> > +++ b/lib/librte_pmd_i40e/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_pmd_i40e.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> > +
> > #
> > # Add extra flags for base driver files (also known as shared code)
> > # to disable warnings
> > diff --git a/lib/librte_pmd_i40e/rte_pmd_i40e_version.map b/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> > new file mode 100644
> > index 0000000..cbc401f
> > --- /dev/null
> > +++ b/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> > @@ -0,0 +1,5 @@
> > +DPDK_1.8 {
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_pmd_ixgbe/Makefile b/lib/librte_pmd_ixgbe/Makefile
> > index 00ccedb..1dd14a6 100644
> > --- a/lib/librte_pmd_ixgbe/Makefile
> > +++ b/lib/librte_pmd_ixgbe/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_pmd_ixgbe.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> > +
> > ifeq ($(CC), icc)
> > #
> > # CFLAGS for icc
> > diff --git a/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map b/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> > new file mode 100644
> > index 0000000..cbc401f
> > --- /dev/null
> > +++ b/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> > @@ -0,0 +1,5 @@
> > +DPDK_1.8 {
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_pmd_pcap/Makefile b/lib/librte_pmd_pcap/Makefile
> > index c5c214d..fff5572 100644
> > --- a/lib/librte_pmd_pcap/Makefile
> > +++ b/lib/librte_pmd_pcap/Makefile
> > @@ -40,6 +40,8 @@ LIB = librte_pmd_pcap.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_pmd_pcap/rte_pmd_pcap_version.map b/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> > new file mode 100644
> > index 0000000..cbc401f
> > --- /dev/null
> > +++ b/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> > @@ -0,0 +1,5 @@
> > +DPDK_1.8 {
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_pmd_ring/Makefile b/lib/librte_pmd_ring/Makefile
> > index b57e421..25ad27f 100644
> > --- a/lib/librte_pmd_ring/Makefile
> > +++ b/lib/librte_pmd_ring/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_pmd_ring.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ring/rte_eth_ring_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_pmd_ring/rte_eth_ring.c b/lib/librte_pmd_ring/rte_eth_ring.c
> > index 4f1b6ed..df7b583 100644
> > --- a/lib/librte_pmd_ring/rte_eth_ring.c
> > +++ b/lib/librte_pmd_ring/rte_eth_ring.c
> > @@ -473,7 +473,7 @@ out:
> > return ret;
> > }
> >
> > -int
> > +static int
> > rte_pmd_ring_devinit(const char *name, const char *params)
> > {
> > struct rte_kvargs *kvlist;
> > diff --git a/lib/librte_pmd_ring/rte_eth_ring.h b/lib/librte_pmd_ring/rte_eth_ring.h
> > index e6ae19e..d36489a 100644
> > --- a/lib/librte_pmd_ring/rte_eth_ring.h
> > +++ b/lib/librte_pmd_ring/rte_eth_ring.h
> > @@ -50,12 +50,6 @@ int rte_eth_from_rings(const char *name,
> > int rte_eth_ring_pair_create(const char *name, const unsigned numa_node);
> > int rte_eth_ring_pair_attach(const char *name, const unsigned numa_node);
> >
> > -/**
> > - * For use by test apps only. Called as part of EAL init to set up any dummy NICs
> > - * configured on command line.
> > - */
> > -int rte_pmd_ring_devinit(const char *name, const char *params);
> > -
> > #ifdef __cplusplus
> > }
> > #endif
> > diff --git a/lib/librte_pmd_ring/rte_eth_ring_version.map b/lib/librte_pmd_ring/rte_eth_ring_version.map
> > new file mode 100644
> > index 0000000..5edaa3d
> > --- /dev/null
> > +++ b/lib/librte_pmd_ring/rte_eth_ring_version.map
> > @@ -0,0 +1,10 @@
> > +DPDK_1.8 {
> > +
> > + global:
> > +
> > + rte_eth_from_rings;
> > + rte_eth_ring_pair_create;
> > + rte_eth_ring_pair_attach;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_pmd_virtio/Makefile b/lib/librte_pmd_virtio/Makefile
> > index 456095b..bf51bd9 100644
> > --- a/lib/librte_pmd_virtio/Makefile
> > +++ b/lib/librte_pmd_virtio/Makefile
> > @@ -39,6 +39,7 @@ LIB = librte_pmd_virtio_uio.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
> >
> > #
> > # all source are stored in SRCS-y
> > diff --git a/lib/librte_pmd_virtio/rte_pmd_virtio_version.map b/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
> > new file mode 100644
> > index 0000000..cbc401f
> > --- /dev/null
> > +++ b/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
> > @@ -0,0 +1,5 @@
> > +DPDK_1.8 {
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_pmd_vmxnet3/Makefile b/lib/librte_pmd_vmxnet3/Makefile
> > index 6872c74..e5a1c6b 100644
> > --- a/lib/librte_pmd_vmxnet3/Makefile
> > +++ b/lib/librte_pmd_vmxnet3/Makefile
> > @@ -66,6 +66,8 @@ endif
> >
> > VPATH += $(RTE_SDK)/lib/librte_pmd_vmxnet3/vmxnet3
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map b/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> > new file mode 100644
> > index 0000000..cbc401f
> > --- /dev/null
> > +++ b/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> > @@ -0,0 +1,5 @@
> > +DPDK_1.8 {
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_pmd_xenvirt/Makefile b/lib/librte_pmd_xenvirt/Makefile
> > index 01bfcaa..0a08b1b 100644
> > --- a/lib/librte_pmd_xenvirt/Makefile
> > +++ b/lib/librte_pmd_xenvirt/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_pmd_xenvirt.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map b/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> > new file mode 100644
> > index 0000000..66199b1
> > --- /dev/null
> > +++ b/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> > @@ -0,0 +1,8 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_mempool_gntalloc_create;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_port/Makefile b/lib/librte_port/Makefile
> > index 28793a5..e812bda 100644
> > --- a/lib/librte_port/Makefile
> > +++ b/lib/librte_port/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_port.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_port/rte_port_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map
> > new file mode 100644
> > index 0000000..57ccaa3
> > --- /dev/null
> > +++ b/lib/librte_port/rte_port_version.map
> > @@ -0,0 +1,18 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_port_ring_reader_ops;
> > + rte_port_ring_writer_ops;
> > + rte_port_ethdev_reader_ops;
> > + rte_port_ethdev_writer_ops;
> > + rte_port_ring_reader_ipv4_frag_ops;
> > + rte_port_ring_writer_ipv4_ras_ops;
> > + rte_port_ring_reader_ops;
> > + rte_port_ring_writer_ops;
> > + rte_port_sched_reader_ops;
> > + rte_port_sched_writer_ops;
> > + rte_port_source_ops;
> > + rte_port_sink_ops;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_power/Makefile b/lib/librte_power/Makefile
> > index 6185812..26ee542 100644
> > --- a/lib/librte_power/Makefile
> > +++ b/lib/librte_power/Makefile
> > @@ -36,6 +36,8 @@ LIB = librte_power.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_power/rte_power_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_POWER) := rte_power.c
> >
> > diff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map
> > new file mode 100644
> > index 0000000..3b2375a
> > --- /dev/null
> > +++ b/lib/librte_power/rte_power_version.map
> > @@ -0,0 +1,14 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_power_init;
> > + rte_power_exit;
> > + rte_power_freqs;
> > + rte_power_get_freq;
> > + rte_power_set_freq;
> > + rte_power_freq_up;
> > + rte_power_freq_down;
> > + rte_power_freq_max;
> > + rte_power_freq_min;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_ring/Makefile b/lib/librte_ring/Makefile
> > index 2380a43..0adaa00 100644
> > --- a/lib/librte_ring/Makefile
> > +++ b/lib/librte_ring/Makefile
> > @@ -36,6 +36,8 @@ LIB = librte_ring.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_ring/rte_ring_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_RING) := rte_ring.c
> >
> > diff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map
> > new file mode 100644
> > index 0000000..6c28af9
> > --- /dev/null
> > +++ b/lib/librte_ring/rte_ring_version.map
> > @@ -0,0 +1,12 @@
> > +DPDK_1.8 {
> > + global:
> > + rte_ring_get_memsize;
> > + rte_ring_init;
> > + rte_ring_create;
> > + rte_ring_set_water_mark;
> > + rte_ring_dump;
> > + rte_ring_list_dump;
> > + rte_ring_lookup;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_sched/Makefile b/lib/librte_sched/Makefile
> > index 1a25b21..205fb7a 100644
> > --- a/lib/librte_sched/Makefile
> > +++ b/lib/librte_sched/Makefile
> > @@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
> >
> > CFLAGS_rte_red.o := -D_GNU_SOURCE
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_sched/rte_sched_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map
> > new file mode 100644
> > index 0000000..b5877ce
> > --- /dev/null
> > +++ b/lib/librte_sched/rte_sched_version.map
> > @@ -0,0 +1,22 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_approx;
> > + rte_red_rt_data_init;
> > + rte_red_config_init;
> > + rte_sched_port_config;
> > + rte_sched_port_free;
> > + rte_sched_subport_config;
> > + rte_sched_pipe_config;
> > + rte_sched_port_get_memory_footprint;
> > + rte_sched_subport_read_stats;
> > + rte_sched_queue_read_stats;
> > + rte_sched_port_enqueue;
> > + rte_sched_port_dequeue;
> > + rte_red_log2_1_minus_Wq;
> > + rte_red_pow2_frac_inv;
> > + rte_red_rand_val;
> > + rte_red_rand_seed;
> > +
> > + local: *;
> > +};
> > diff --git a/lib/librte_table/Makefile b/lib/librte_table/Makefile
> > index dd684cc..5b54acc 100644
> > --- a/lib/librte_table/Makefile
> > +++ b/lib/librte_table/Makefile
> > @@ -39,6 +39,8 @@ LIB = librte_table.a
> > CFLAGS += -O3
> > CFLAGS += $(WERROR_FLAGS)
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_table/rte_table_version.map
> > +
> > #
> > # all source are stored in SRCS-y
> > #
> > diff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map
> > new file mode 100644
> > index 0000000..86f16b8
> > --- /dev/null
> > +++ b/lib/librte_table/rte_table_version.map
> > @@ -0,0 +1,22 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_table_stub_ops;
> > + rte_table_lpm_ops;
> > + rte_table_array_ops;
> > + rte_table_hash_key8_lru_ops;
> > + rte_table_hash_key8_lru_dosig_ops;
> > + rte_table_hash_key8_ext_ops;
> > + rte_table_hash_key8_ext_dosig_ops;
> > + rte_table_lpm_ipv6_ops;
> > + rte_table_hash_key16_lru_ops;
> > + rte_table_hash_key32_lru_ops;
> > + rte_table_hash_key16_ext_ops;
> > + rte_table_hash_key32_ext_ops;
> > + rte_table_acl_ops;
> > + rte_table_hash_lru_ops;
> > + rte_table_hash_ext_ops;
> > +
> > + local: *;
> > +};
> > +
> > diff --git a/lib/librte_timer/Makefile b/lib/librte_timer/Makefile
> > index 07eb0c6..f703e5f 100644
> > --- a/lib/librte_timer/Makefile
> > +++ b/lib/librte_timer/Makefile
> > @@ -36,6 +36,8 @@ LIB = librte_timer.a
> >
> > CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
> >
> > +EXPORT_MAP := $(RTE_SDK)/lib/librte_timer/rte_timer_version.map
> > +
> > # all source are stored in SRCS-y
> > SRCS-$(CONFIG_RTE_LIBRTE_TIMER) := rte_timer.c
> >
> > diff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map
> > new file mode 100644
> > index 0000000..00b6b52
> > --- /dev/null
> > +++ b/lib/librte_timer/rte_timer_version.map
> > @@ -0,0 +1,16 @@
> > +DPDK_1.8 {
> > + global:
> > +
> > + rte_timer_subsystem_init;
> > + rte_timer_init;
> > + rte_timer_reset;
> > + rte_timer_reset_sync;
> > + rte_timer_stop;
> > + rte_timer_stop_sync;
> > + rte_timer_pending;
> > + rte_timer_manage;
> > + rte_timer_dump_stats;
> > +
> > + local: *;
> > +};
> > +
> > --
> > 1.9.3
> >
>
> May need to update some of the version maps with new functions in head.
>
I'm certain we will, but thats a trivial matter once this is integrated.
Neil
> Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
>
@@ -37,6 +37,8 @@ LIB = librte_acl.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_acl/rte_acl_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
new file mode 100644
@@ -0,0 +1,19 @@
+DPDK_1.8 {
+ global:
+ rte_acl_create;
+ rte_acl_find_existing;
+ rte_acl_free;
+ rte_acl_add_rules;
+ rte_acl_reset_rules;
+ rte_acl_build;
+ rte_acl_reset;
+ rte_acl_classify;
+ rte_acl_dump;
+ rte_acl_list_dump;
+ rte_acl_ipv4vlan_add_rules;
+ rte_acl_ipv4vlan_build;
+ rte_acl_classify_scalar;
+
+ local: *;
+};
+
@@ -39,6 +39,8 @@ LIB = librte_cfgfile.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_cfgfile/rte_cfgfile_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,14 @@
+DPDK_1.8 {
+ global:
+ rte_cfgfile_load;
+ rte_cfgfile_num_sections;
+ rte_cfgfile_sections;
+ rte_cfgfile_has_section;
+ rte_cfgfile_section_num_entries;
+ rte_cfgfile_section_entries;
+ rte_cfgfile_get_entry;
+ rte_cfgfile_has_entry;
+ rte_cfgfile_close;
+
+ local: *;
+};
@@ -36,6 +36,8 @@ LIB = librte_cmdline.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
+EXPORT_MAP := $(RTE_SDK)/lib/librte_cmdline/rte_cmdline_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := cmdline.c
SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_cirbuf.c
new file mode 100644
@@ -0,0 +1,69 @@
+DPDK_1.8 {
+ global:
+ cmdline_new;
+ cmdline_set_prompt;
+ cmdline_free;
+ cmdline_printf;
+ cmdline_in;
+ cmdline_write_char;
+ cmdline_interact;
+ cmdline_quit;
+ cmdline_parse;
+ cmdline_complete;
+ cmdline_isendoftoken;
+ cmdline_parse_num;
+ cmdline_get_help_num;
+ cmdline_parse_ipaddr;
+ cmdline_get_help_ipaddr;
+ cmdline_parse_etheraddr;
+ cmdline_get_help_etheraddr;
+ cmdline_parse_string;
+ cmdline_complete_get_nb_string;
+ cmdline_complete_get_elt_string;
+ cmdline_get_help_string;
+ cmdline_parse_portlist;
+ cmdline_get_help_portlist;
+ cmdline_token_string_ops;
+ cmdline_token_num_ops;
+ cmdline_token_string_ops;
+ cmdline_token_ipaddr_ops;
+ cmdline_token_etheraddr_ops;
+ vt100_init;
+ vt100_parser;
+ cmdline_file_new;
+ cmdline_stdin_new;
+ cmdline_stdin_exit;
+ cirbuf_init;
+ cirbuf_add_head_safe;
+ cirbuf_add_head;
+ cirbuf_add_tail_safe;
+ cirbuf_add_tail;
+ cirbuf_del_head_safe;
+ cirbuf_del_head;
+ cirbuf_del_tail_safe;
+ cirbuf_del_tail;
+ cirbuf_get_head;
+ cirbuf_get_tail;
+ cirbuf_add_buf_head;
+ cirbuf_add_buf_tail;
+ cirbuf_del_buf_head;
+ cirbuf_del_buf_tail;
+ cirbuf_get_buf_head;
+ cirbuf_get_buf_tail;
+ cirbuf_align_left;
+ cirbuf_align_right;
+ rdline_init;
+ rdline_newline;
+ rdline_stop;
+ rdline_quit;
+ rdline_restart;
+ rdline_redisplay;
+ rdline_reset;
+ rdline_char_in;
+ rdline_get_buffer;
+ rdline_add_history;
+ rdline_clear_history;
+ rdline_get_history_item;
+
+ local: *;
+};
@@ -37,6 +37,8 @@ LIB = librte_distributor.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_distributor/rte_distributor_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) := rte_distributor.c
new file mode 100644
@@ -0,0 +1,16 @@
+DPDK_1.8 {
+
+ global:
+ rte_distributor_create;
+ rte_distributor_process;
+ rte_distributor_returned_pkts;
+ rte_distributor_flush;
+ rte_distributor_clear_returns;
+ rte_distributor_get_pkt;
+ rte_distributor_return_pkt;
+ rte_distributor_request_pkt;
+ rte_distributor_poll_pkt;
+
+ local: *;
+};
+
@@ -45,6 +45,8 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_ring
CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_pcap
CFLAGS += $(WERROR_FLAGS) -O3
+EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/bsdapp/eal/rte_eal_version.map
+
# specific to linuxapp exec-env
SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) := eal.c
SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) += eal_memory.c
new file mode 100644
@@ -0,0 +1,89 @@
+DPDK_1.8 {
+ global:
+ rte_eal_alarm_set;
+ rte_eal_alarm_cancel;
+ rte_exit;
+ rte_cpu_get_flag_enabled;
+ rte_cpu_check_supported;
+ rte_get_tsc_hz;
+ rte_get_hpet_cycles;
+ rte_get_hpet_hz;
+ rte_eal_hpet_init;
+ rte_delay_us;
+ rte_dump_stack;
+ rte_dump_registers;
+ __rte_panic;
+ rte_eal_devargs_add;
+ rte_eal_devargs_type_count;
+ rte_eal_devargs_dump;
+ rte_eal_driver_register;
+ rte_eal_driver_unregister;
+ rte_eal_dev_init;
+ rte_eal_init;
+ rte_set_application_usage_hook;
+ rte_eal_has_hugepages;
+ rte_strerror;
+ rte_hexdump;
+ rte_memdump;
+ rte_intr_callback_register;
+ rte_intr_callback_unregister;
+ rte_intr_enable;
+ rte_intr_disable;
+ rte_eal_remote_launch;
+ rte_eal_mp_remote_launch;
+ rte_eal_get_lcore_state;
+ rte_eal_wait_lcore;
+ rte_eal_mp_wait_lcore;
+ rte_openlog_stream;
+ rte_set_log_level;
+ rte_set_log_type;
+ rte_log_cur_msg_loglevel;
+ rte_log_cur_msg_logtype;
+ rte_log_set_history;
+ rte_log_dump_history;
+ rte_log_add_in_history;
+ rte_log;
+ rte_vlog;
+ rte_mem_lock_page;
+ rte_mem_virt2phy;
+ rte_eal_get_physmem_layout;
+ rte_dump_physmem_layout;
+ rte_eal_get_physmem_size;
+ rte_memory_get_nchannel;
+ rte_memory_get_nrank;
+ rte_mem_phy2mch;
+ rte_xen_dom0_memory_init;
+ rte_xen_dom0_memory_attach;
+ rte_memzone_reserve;
+ rte_memzone_reserve_aligned;
+ rte_memzone_reserve_bounded;
+ rte_memzone_lookup;
+ rte_memzone_dump;
+ rte_memzone_walk;
+ rte_eal_pci_probe;
+ rte_eal_pci_dump;
+ rte_eal_pci_register;
+ rte_eal_pci_unregister;
+ rte_snprintf;
+ rte_strsplit;
+ rte_eal_tailq_reserve;
+ rte_eal_tailq_reserve_by_idx;
+ rte_dump_tailq;
+ rte_eal_tailq_lookup;
+ rte_eal_tailq_lookup_by_idx;
+ lcore_config;
+ per_lcore__lcore_id;
+ eal_timer_source;
+ rte_cycles_vmware_tsc_map;
+ rte_eal_get_configuration;
+ rte_logs;
+ rte_eal_lcore_role;
+ test_mp_secondary;
+ rte_eal_process_type;
+ per_lcore__rte_errno;
+ pci_device_list;
+ devargs_list;
+ eal_parse_sysfs_value;
+
+ local: *;
+};
@@ -33,6 +33,8 @@ include $(RTE_SDK)/mk/rte.vars.mk
LIB = librte_eal.a
+EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/linuxapp/eal/rte_eal_version.map
+
VPATH += $(RTE_SDK)/lib/librte_eal/common
CFLAGS += -I$(SRCDIR)/include
new file mode 100644
@@ -0,0 +1,89 @@
+DPDK_1.8 {
+ global:
+ rte_eal_alarm_set;
+ rte_eal_alarm_cancel;
+ rte_exit;
+ rte_cpu_get_flag_enabled;
+ rte_cpu_check_supported;
+ rte_get_tsc_hz;
+ rte_get_hpet_cycles;
+ rte_get_hpet_hz;
+ rte_eal_hpet_init;
+ rte_delay_us;
+ rte_dump_stack;
+ rte_dump_registers;
+ __rte_panic;
+ rte_eal_devargs_add;
+ rte_eal_devargs_type_count;
+ rte_eal_devargs_dump;
+ rte_eal_driver_register;
+ rte_eal_driver_unregister;
+ rte_eal_dev_init;
+ rte_eal_init;
+ rte_set_application_usage_hook;
+ rte_eal_has_hugepages;
+ rte_strerror;
+ rte_hexdump;
+ rte_memdump;
+ rte_intr_callback_register;
+ rte_intr_callback_unregister;
+ rte_intr_enable;
+ rte_intr_disable;
+ rte_eal_remote_launch;
+ rte_eal_mp_remote_launch;
+ rte_eal_get_lcore_state;
+ rte_eal_wait_lcore;
+ rte_eal_mp_wait_lcore;
+ rte_openlog_stream;
+ rte_set_log_level;
+ rte_set_log_type;
+ rte_log_cur_msg_loglevel;
+ rte_log_cur_msg_logtype;
+ rte_log_set_history;
+ rte_log_dump_history;
+ rte_log_add_in_history;
+ rte_log;
+ rte_vlog;
+ rte_mem_lock_page;
+ rte_mem_virt2phy;
+ rte_eal_get_physmem_layout;
+ rte_dump_physmem_layout;
+ rte_eal_get_physmem_size;
+ rte_memory_get_nchannel;
+ rte_memory_get_nrank;
+ rte_mem_phy2mch;
+ rte_xen_dom0_memory_init;
+ rte_xen_dom0_memory_attach;
+ rte_memzone_reserve;
+ rte_memzone_reserve_aligned;
+ rte_memzone_reserve_bounded;
+ rte_memzone_lookup;
+ rte_memzone_dump;
+ rte_memzone_walk;
+ rte_eal_pci_probe;
+ rte_eal_pci_dump;
+ rte_eal_pci_register;
+ rte_eal_pci_unregister;
+ rte_snprintf;
+ rte_strsplit;
+ rte_eal_tailq_reserve;
+ rte_eal_tailq_reserve_by_idx;
+ rte_dump_tailq;
+ rte_eal_tailq_lookup;
+ rte_eal_tailq_lookup_by_idx;
+ lcore_config;
+ per_lcore__lcore_id;
+ eal_timer_source;
+ rte_cycles_vmware_tsc_map;
+ rte_eal_get_configuration;
+ rte_logs;
+ rte_eal_lcore_role;
+ test_mp_secondary;
+ rte_eal_process_type;
+ per_lcore__rte_errno;
+ pci_device_list;
+ devargs_list;
+ eal_parse_sysfs_value;
+
+ local: *;
+};
@@ -39,6 +39,8 @@ LIB = libethdev.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_ether/rte_ether_version.map
+
SRCS-y += rte_ethdev.c
#
new file mode 100644
@@ -0,0 +1,108 @@
+DPDK_1.8 {
+ global:
+ rte_eth_driver_register;
+ rte_eth_dev_configure;
+ rte_eth_rx_queue_setup;
+ rte_eth_tx_queue_setup;
+ rte_eth_dev_socket_id;
+ rte_eth_dev_rx_queue_start;
+ rte_eth_dev_rx_queue_stop;
+ rte_eth_dev_tx_queue_start;
+ rte_eth_dev_tx_queue_stop;
+ rte_eth_dev_start;
+ rte_eth_dev_stop;
+ rte_eth_dev_set_link_up;
+ rte_eth_dev_set_link_down;
+ rte_eth_dev_close;
+ rte_eth_promiscuous_enable;
+ rte_eth_promiscuous_disable;
+ rte_eth_promiscuous_get;
+ rte_eth_allmulticast_enable;
+ rte_eth_allmulticast_disable;
+ rte_eth_allmulticast_get;
+ rte_eth_link;
+ rte_eth_link_get_nowait;
+ rte_eth_stats;
+ rte_eth_stats_reset;
+ rte_eth_dev_set_tx_queue_stats_mapping;
+ rte_eth_dev_set_rx_queue_stats_mapping;
+ rte_eth_macaddr_get;
+ rte_eth_dev_info_get;
+ rte_eth_dev_get_mtu;
+ rte_eth_dev_set_mtu;
+ rte_eth_dev_vlan_filter;
+ rte_eth_dev_set_vlan_strip_on_queue;
+ rte_eth_dev_set_vlan_ether_type;
+ rte_eth_dev_set_vlan_offload;
+ rte_eth_dev_get_vlan_offload;
+ rte_eth_dev_set_vlan_pvid;
+ rte_eth_rx_burst;
+ rte_eth_rx_queue_count;
+ rte_eth_rx_descriptor_done;
+ rte_eth_tx_burst;
+ rte_eth_dev_fdir_add_signature_filter;
+ rte_eth_dev_fdir_update_signature_filter;
+ rte_eth_dev_fdir_remove_signature_filter;
+ rte_eth_dev_fdir_get_infos;
+ rte_eth_dev_fdir_add_perfect_filter;
+ rte_eth_dev_fdir_update_perfect_filter;
+ rte_eth_dev_fdir_remove_perfect_filter;
+ rte_eth_dev_fdir_set_masks;
+ rte_eth_dev_callback_register;
+ rte_eth_dev_callback_unregister;
+ rte_eth_dev_callback_process;
+ rte_eth_led_on;
+ rte_eth_led_off;
+ rte_eth_dev_flow_ctrl_get;
+ rte_eth_dev_flow_ctrl_set;
+ rte_eth_dev_priority_flow_ctrl_set;
+ rte_eth_dev_mac_addr_add;
+ rte_eth_dev_mac_addr_remove;
+ rte_eth_dev_rss_reta_update;
+ rte_eth_dev_rss_reta_query;
+ rte_eth_dev_uc_hash_table_set;
+ rte_eth_dev_uc_all_hash_table_set;
+ rte_eth_dev_set_vf_rxmode;
+ rte_eth_dev_set_vf_tx;
+ rte_eth_dev_set_vf_rx;
+ rte_eth_dev_set_vf_vlan_filter;
+ rte_eth_mirror_rule_set;
+ rte_eth_mirror_rule_reset;
+ rte_eth_set_queue_rate_limit;
+ rte_eth_set_vf_rate_limit;
+ rte_eth_dev_bypass_init;
+ rte_eth_dev_bypass_state_show;
+ rte_eth_dev_bypass_state_set;
+ rte_eth_dev_bypass_event_show;
+ rte_eth_dev_bypass_event_store;
+ rte_eth_dev_wd_timeout_store;
+ rte_eth_dev_bypass_ver_show;
+ rte_eth_dev_bypass_wd_timeout_show;
+ rte_eth_dev_bypass_wd_reset;
+ rte_eth_dev_rss_hash_update;
+ rte_eth_dev_rss_hash_conf_get;
+ rte_eth_dev_add_syn_filter;
+ rte_eth_dev_remove_syn_filter;
+ rte_eth_dev_get_syn_filter;
+ rte_eth_dev_add_ethertype_filter;
+ rte_eth_dev_remove_ethertype_filter;
+ rte_eth_dev_get_ethertype_filter;
+ rte_eth_dev_add_2tuple_filter;
+ rte_eth_dev_remove_2tuple_filter;
+ rte_eth_dev_get_2tuple_filter;
+ rte_eth_dev_add_5tuple_filter;
+ rte_eth_dev_remove_5tuple_filter;
+ rte_eth_dev_get_5tuple_filter;
+ rte_eth_dev_add_flex_filter;
+ rte_eth_dev_remove_flex_filter;
+ rte_eth_dev_get_flex_filter;
+ rte_eth_dev_count;
+ rte_eth_link_get;
+ rte_eth_devices;
+ rte_eth_stats_get;
+ rte_eth_dev_allocate;
+ _rte_eth_dev_callback_process;
+
+ local: *;
+};
+
@@ -37,6 +37,8 @@ LIB = librte_hash.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_hash/rte_hash_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_hash.c
SRCS-$(CONFIG_RTE_LIBRTE_HASH) += rte_fbk_hash.c
new file mode 100644
@@ -0,0 +1,18 @@
+DPDK_1.8 {
+ global:
+ rte_fbk_hash_find_existing;
+ rte_fbk_hash_create;
+ rte_fbk_hash_free;
+ rte_hash_create;
+ rte_hash_find_existing;
+ rte_hash_free;
+ rte_hash_add_key;
+ rte_hash_add_key_with_hash;
+ rte_hash_del_key;
+ rte_hash_del_key_with_hash;
+ rte_hash_lookup;
+ rte_hash_lookup_with_hash;
+ rte_hash_lookup_bulk;
+
+ local: *;
+};
@@ -37,6 +37,8 @@ LIB = librte_ip_frag.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_ip_frag/rte_ipfrag_version.map
+
#source files
SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_fragmentation.c
SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_reassembly.c
new file mode 100644
@@ -0,0 +1,14 @@
+DPDK_1.8 {
+ global:
+
+ rte_ip_frag_table_create;
+ rte_ipv6_fragment_packet;
+ rte_ipv6_frag_reassemble_packet;
+ rte_ipv4_fragment_packet;
+ rte_ipv4_frag_reassemble_packet;
+ rte_ip_frag_free_death_row;
+ rte_ip_frag_table_statistics_dump;
+
+ local: *;
+};
+
@@ -36,6 +36,8 @@ LIB = librte_ivshmem.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
+EXPORT_MAPS := $(RTE_SDK)/lib/librte_ivshmem/rte_ivshmem_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_IVSHMEM) := rte_ivshmem.c
new file mode 100644
@@ -0,0 +1,13 @@
+DPDK_1.8 {
+ global:
+
+ rte_ivshmem_metadata_create;
+ rte_ivshmem_metadata_add_memzone;
+ rte_ivshmem_metadata_add_ring;
+ rte_ivshmem_metadata_add_mempool;
+ rte_ivshmem_metadata_cmdline_generate;
+ rte_ivshmem_metadata_dump;
+
+ local: *;
+};
+
@@ -36,6 +36,8 @@ LIB = librte_kni.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
+EXPORT_MAP := $(RTE_SDK)/lib/librte_kni/rte_kni_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_KNI) := rte_kni.c
new file mode 100644
@@ -0,0 +1,19 @@
+DPDK_1.8 {
+ global:
+
+ rte_kni_alloc;
+ rte_kni_create;
+ rte_kni_release;
+ rte_kni_handle_request;
+ rte_kni_rx_burst;
+ rte_kni_tx_burst;
+ rte_kni_get_port_id;
+ rte_kni_get;
+ rte_kni_info_get;
+ rte_kni_register_handlers;
+ rte_kni_unregister_handlers;
+ rte_kni_close;
+
+ local: *;
+};
+
@@ -38,6 +38,8 @@ LIB = librte_kvargs.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
+EXPORT_MAP := $(RTE_SDK)/lib/librte_kvargs/rte_kvargs_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) := rte_kvargs.c
new file mode 100644
@@ -0,0 +1,10 @@
+DPDK_1.8 {
+
+ global:
+ rte_kvargs_parse;
+ rte_kvargs_free;
+ rte_kvargs_process;
+ rte_kvargs_count;
+
+ local: *;
+};
@@ -37,6 +37,8 @@ LIB = librte_lpm.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_lpm/rte_lpm_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_LPM) := rte_lpm.c rte_lpm6.c
new file mode 100644
@@ -0,0 +1,24 @@
+DPDK_1.8 {
+ global:
+
+ rte_lpm_create;
+ rte_lpm_find_existing;
+ rte_lpm_free;
+ rte_lpm_add;
+ rte_lpm_is_rule_present;
+ rte_lpm_delete;
+ rte_lpm_delete_all;
+ rte_lpm6_create;
+ rte_lpm6_find_existing;
+ rte_lpm6_free;
+ rte_lpm6_add;
+ rte_lpm6_is_rule_present;
+ rte_lpm6_delete;
+ rte_lpm6_delete_bulk_func;
+ rte_lpm6_delete_all;
+ rte_lpm6_lookup;
+ rte_lpm6_lookup_bulk_func;
+
+ local: *;
+};
+
@@ -36,6 +36,8 @@ LIB = librte_malloc.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
+EXPORT_MAP := $(RTE_SDK)/lib/librte_malloc/rte_malloc_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_MALLOC) := rte_malloc.c malloc_elem.c malloc_heap.c
new file mode 100644
@@ -0,0 +1,19 @@
+DPDK_1.8 {
+ global:
+
+ rte_malloc;
+ rte_zmalloc;
+ rte_calloc;
+ rte_realloc;
+ rte_malloc_socket;
+ rte_zmalloc_socket;
+ rte_calloc_socket;
+ rte_free;
+ rte_malloc_validate;
+ rte_malloc_get_socket_stats;
+ rte_malloc_dump_stats;
+ rte_malloc_set_limit;
+ rte_malloc_virt2phy;
+
+ local: *;
+};
@@ -36,6 +36,8 @@ LIB = librte_mbuf.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
+EXPORT_MAP := $(RTE_SDK)/lib/librte_mbuf/rte_mbuf_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_MBUF) := rte_mbuf.c
new file mode 100644
@@ -0,0 +1,12 @@
+DPDK_1.8 {
+ global:
+
+ rte_mbuf_sanity_check;
+ rte_ctrlmbuf_init;
+ rte_pktmbuf_init;
+ rte_pktmbuf_pool_init;
+ rte_pktmbuf_dump;
+
+ local: *;
+};
+
@@ -36,6 +36,8 @@ LIB = librte_mempool.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
+EXPORT_MAP := $(RTE_SDK)/lib/librte_mempool/rte_mempool_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool.c
ifeq ($(CONFIG_RTE_LIBRTE_XEN_DOM0),y)
new file mode 100644
@@ -0,0 +1,18 @@
+DPDK_1.8 {
+ global:
+
+ rte_mempool_create;
+ rte_mempool_xmem_create;
+ rte_dom0_mempool_create;
+ rte_mempool_dump;
+ rte_mempool_audit;
+ rte_mempool_list_dump;
+ rte_mempool_lookup;
+ rte_mempool_calc_obj_size;
+ rte_mempool_xmem_size;
+ rte_mempool_xmem_usage;
+ rte_mempool_walk;
+ rte_mempool_count;
+
+ local: *;
+};
@@ -39,6 +39,8 @@ LIB = librte_meter.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_meter/rte_meter_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,13 @@
+DPDK_1.8 {
+ global:
+
+ rte_meter_srtcm_config;
+ rte_meter_trtcm_config;
+ rte_meter_srtcm_color_blind_check;
+ rte_meter_srtcm_color_aware_check;
+ rte_meter_trtcm_color_blind_check;
+ rte_meter_trtcm_color_aware_check;
+
+ local: *;
+};
+
@@ -39,6 +39,8 @@ LIB = librte_pipeline.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pipeline/rte_pipeline_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,23 @@
+DPDK_1.8 {
+ global:
+
+ rte_pipeline_create;
+ rte_pipeline_free;
+ rte_pipeline_check;
+ rte_pipeline_run;
+ rte_pipeline_flush;
+ rte_pipeline_table_create;
+ rte_pipeline_table_default_entry_add;
+ rte_pipeline_table_default_entry_delete;
+ rte_pipeline_table_entry_add;
+ rte_pipeline_table_entry_delete;
+ rte_pipeline_port_in_create;
+ rte_pipeline_port_in_connect_to_table;
+ rte_pipeline_port_in_enable;
+ rte_pipeline_port_in_disable;
+ rte_pipeline_port_out_create;
+ rte_pipeline_port_out_packet_insert;
+
+ local: *;
+};
+
@@ -39,6 +39,8 @@ LIB = librte_pmd_bond.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_bond/rte_eth_bond_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,20 @@
+DPDK_1.8 {
+ global:
+
+ rte_eth_bond_create;
+ rte_eth_bond_slave_add;
+ rte_eth_bond_slave_remove;
+ rte_eth_bond_mode_set;
+ rte_eth_bond_mode_get;
+ rte_eth_bond_primary_set;
+ rte_eth_bond_primary_get;
+ rte_eth_bond_slaves_get;
+ rte_eth_bond_active_slaves_get;
+ rte_eth_bond_mac_address_set;
+ rte_eth_bond_mac_address_reset;
+ rte_eth_bond_xmit_policy_set;
+ rte_eth_bond_xmit_policy_get;
+
+
+ local: *;
+};
@@ -39,6 +39,8 @@ LIB = librte_pmd_e1000.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
+
ifeq ($(CC), icc)
#
# CFLAGS for icc
new file mode 100644
@@ -0,0 +1,5 @@
+DPDK_1.8 {
+
+ local: *;
+};
+
@@ -39,6 +39,8 @@ LIB = librte_pmd_i40e.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
+
#
# Add extra flags for base driver files (also known as shared code)
# to disable warnings
new file mode 100644
@@ -0,0 +1,5 @@
+DPDK_1.8 {
+
+ local: *;
+};
+
@@ -39,6 +39,8 @@ LIB = librte_pmd_ixgbe.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
+
ifeq ($(CC), icc)
#
# CFLAGS for icc
new file mode 100644
@@ -0,0 +1,5 @@
+DPDK_1.8 {
+
+ local: *;
+};
+
@@ -40,6 +40,8 @@ LIB = librte_pmd_pcap.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,5 @@
+DPDK_1.8 {
+
+ local: *;
+};
+
@@ -39,6 +39,8 @@ LIB = librte_pmd_ring.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ring/rte_eth_ring_version.map
+
#
# all source are stored in SRCS-y
#
@@ -473,7 +473,7 @@ out:
return ret;
}
-int
+static int
rte_pmd_ring_devinit(const char *name, const char *params)
{
struct rte_kvargs *kvlist;
@@ -50,12 +50,6 @@ int rte_eth_from_rings(const char *name,
int rte_eth_ring_pair_create(const char *name, const unsigned numa_node);
int rte_eth_ring_pair_attach(const char *name, const unsigned numa_node);
-/**
- * For use by test apps only. Called as part of EAL init to set up any dummy NICs
- * configured on command line.
- */
-int rte_pmd_ring_devinit(const char *name, const char *params);
-
#ifdef __cplusplus
}
#endif
new file mode 100644
@@ -0,0 +1,10 @@
+DPDK_1.8 {
+
+ global:
+
+ rte_eth_from_rings;
+ rte_eth_ring_pair_create;
+ rte_eth_ring_pair_attach;
+
+ local: *;
+};
@@ -39,6 +39,7 @@ LIB = librte_pmd_virtio_uio.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
#
# all source are stored in SRCS-y
new file mode 100644
@@ -0,0 +1,5 @@
+DPDK_1.8 {
+
+ local: *;
+};
+
@@ -66,6 +66,8 @@ endif
VPATH += $(RTE_SDK)/lib/librte_pmd_vmxnet3/vmxnet3
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,5 @@
+DPDK_1.8 {
+
+ local: *;
+};
+
@@ -39,6 +39,8 @@ LIB = librte_pmd_xenvirt.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,8 @@
+DPDK_1.8 {
+ global:
+
+ rte_mempool_gntalloc_create;
+
+ local: *;
+};
+
@@ -39,6 +39,8 @@ LIB = librte_port.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_port/rte_port_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,18 @@
+DPDK_1.8 {
+ global:
+ rte_port_ring_reader_ops;
+ rte_port_ring_writer_ops;
+ rte_port_ethdev_reader_ops;
+ rte_port_ethdev_writer_ops;
+ rte_port_ring_reader_ipv4_frag_ops;
+ rte_port_ring_writer_ipv4_ras_ops;
+ rte_port_ring_reader_ops;
+ rte_port_ring_writer_ops;
+ rte_port_sched_reader_ops;
+ rte_port_sched_writer_ops;
+ rte_port_source_ops;
+ rte_port_sink_ops;
+
+ local: *;
+};
+
@@ -36,6 +36,8 @@ LIB = librte_power.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
+EXPORT_MAP := $(RTE_SDK)/lib/librte_power/rte_power_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_POWER) := rte_power.c
new file mode 100644
@@ -0,0 +1,14 @@
+DPDK_1.8 {
+ global:
+ rte_power_init;
+ rte_power_exit;
+ rte_power_freqs;
+ rte_power_get_freq;
+ rte_power_set_freq;
+ rte_power_freq_up;
+ rte_power_freq_down;
+ rte_power_freq_max;
+ rte_power_freq_min;
+
+ local: *;
+};
@@ -36,6 +36,8 @@ LIB = librte_ring.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
+EXPORT_MAP := $(RTE_SDK)/lib/librte_ring/rte_ring_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_RING) := rte_ring.c
new file mode 100644
@@ -0,0 +1,12 @@
+DPDK_1.8 {
+ global:
+ rte_ring_get_memsize;
+ rte_ring_init;
+ rte_ring_create;
+ rte_ring_set_water_mark;
+ rte_ring_dump;
+ rte_ring_list_dump;
+ rte_ring_lookup;
+
+ local: *;
+};
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
CFLAGS_rte_red.o := -D_GNU_SOURCE
+EXPORT_MAP := $(RTE_SDK)/lib/librte_sched/rte_sched_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,22 @@
+DPDK_1.8 {
+ global:
+
+ rte_approx;
+ rte_red_rt_data_init;
+ rte_red_config_init;
+ rte_sched_port_config;
+ rte_sched_port_free;
+ rte_sched_subport_config;
+ rte_sched_pipe_config;
+ rte_sched_port_get_memory_footprint;
+ rte_sched_subport_read_stats;
+ rte_sched_queue_read_stats;
+ rte_sched_port_enqueue;
+ rte_sched_port_dequeue;
+ rte_red_log2_1_minus_Wq;
+ rte_red_pow2_frac_inv;
+ rte_red_rand_val;
+ rte_red_rand_seed;
+
+ local: *;
+};
@@ -39,6 +39,8 @@ LIB = librte_table.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := $(RTE_SDK)/lib/librte_table/rte_table_version.map
+
#
# all source are stored in SRCS-y
#
new file mode 100644
@@ -0,0 +1,22 @@
+DPDK_1.8 {
+ global:
+
+ rte_table_stub_ops;
+ rte_table_lpm_ops;
+ rte_table_array_ops;
+ rte_table_hash_key8_lru_ops;
+ rte_table_hash_key8_lru_dosig_ops;
+ rte_table_hash_key8_ext_ops;
+ rte_table_hash_key8_ext_dosig_ops;
+ rte_table_lpm_ipv6_ops;
+ rte_table_hash_key16_lru_ops;
+ rte_table_hash_key32_lru_ops;
+ rte_table_hash_key16_ext_ops;
+ rte_table_hash_key32_ext_ops;
+ rte_table_acl_ops;
+ rte_table_hash_lru_ops;
+ rte_table_hash_ext_ops;
+
+ local: *;
+};
+
@@ -36,6 +36,8 @@ LIB = librte_timer.a
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
+EXPORT_MAP := $(RTE_SDK)/lib/librte_timer/rte_timer_version.map
+
# all source are stored in SRCS-y
SRCS-$(CONFIG_RTE_LIBRTE_TIMER) := rte_timer.c
new file mode 100644
@@ -0,0 +1,16 @@
+DPDK_1.8 {
+ global:
+
+ rte_timer_subsystem_init;
+ rte_timer_init;
+ rte_timer_reset;
+ rte_timer_reset_sync;
+ rte_timer_stop;
+ rte_timer_stop_sync;
+ rte_timer_pending;
+ rte_timer_manage;
+ rte_timer_dump_stats;
+
+ local: *;
+};
+