[v3,7/7] examples: disable Rx packet type parsing

Message ID 20190929211916.31702-8-pbhagavatula@marvell.com (mailing list archive)
State Superseded, archived
Headers
Series ethdev: add new Rx offload flags |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Pavan Nikhilesh Bhagavatula Sept. 29, 2019, 9:19 p.m. UTC
  From: Pavan Nikhilesh <pbhagavatula@marvell.com>

Disable packet type parsing in examples that don't use
`rte_mbuf::packet_type` by setting ptype_mask as 0 in
`rte_eth_dev_set_supported_ptypes`

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 examples/bbdev_app/main.c                  | 1 +
 examples/bond/main.c                       | 2 ++
 examples/distributor/Makefile              | 1 +
 examples/distributor/main.c                | 1 +
 examples/distributor/meson.build           | 1 +
 examples/eventdev_pipeline/main.c          | 1 +
 examples/eventdev_pipeline/meson.build     | 1 +
 examples/exception_path/Makefile           | 1 +
 examples/exception_path/main.c             | 1 +
 examples/exception_path/meson.build        | 1 +
 examples/flow_classify/flow_classify.c     | 1 +
 examples/flow_filtering/Makefile           | 1 +
 examples/flow_filtering/main.c             | 1 +
 examples/flow_filtering/meson.build        | 1 +
 examples/ip_pipeline/link.c                | 1 +
 examples/ip_reassembly/Makefile            | 1 +
 examples/ip_reassembly/main.c              | 1 +
 examples/ip_reassembly/meson.build         | 1 +
 examples/ipsec-secgw/ipsec-secgw.c         | 1 +
 examples/ipv4_multicast/Makefile           | 1 +
 examples/ipv4_multicast/main.c             | 1 +
 examples/ipv4_multicast/meson.build        | 1 +
 examples/kni/main.c                        | 1 +
 examples/l2fwd-cat/Makefile                | 1 +
 examples/l2fwd-cat/l2fwd-cat.c             | 1 +
 examples/l2fwd-cat/meson.build             | 1 +
 examples/l2fwd-crypto/main.c               | 1 +
 examples/l2fwd-jobstats/Makefile           | 1 +
 examples/l2fwd-jobstats/main.c             | 1 +
 examples/l2fwd-jobstats/meson.build        | 1 +
 examples/l2fwd-keepalive/Makefile          | 1 +
 examples/l2fwd-keepalive/main.c            | 1 +
 examples/l2fwd-keepalive/meson.build       | 1 +
 examples/l2fwd/Makefile                    | 1 +
 examples/l2fwd/main.c                      | 1 +
 examples/l2fwd/meson.build                 | 1 +
 examples/l3fwd-acl/Makefile                | 1 +
 examples/l3fwd-acl/main.c                  | 1 +
 examples/l3fwd-acl/meson.build             | 1 +
 examples/l3fwd-power/main.c                | 1 +
 examples/l3fwd-vf/Makefile                 | 1 +
 examples/l3fwd-vf/main.c                   | 1 +
 examples/l3fwd-vf/meson.build              | 1 +
 examples/link_status_interrupt/Makefile    | 1 +
 examples/link_status_interrupt/main.c      | 1 +
 examples/link_status_interrupt/meson.build | 1 +
 examples/load_balancer/Makefile            | 1 +
 examples/load_balancer/init.c              | 1 +
 examples/load_balancer/meson.build         | 1 +
 examples/packet_ordering/Makefile          | 1 +
 examples/packet_ordering/main.c            | 1 +
 examples/packet_ordering/meson.build       | 1 +
 examples/ptpclient/Makefile                | 1 +
 examples/ptpclient/meson.build             | 1 +
 examples/ptpclient/ptpclient.c             | 1 +
 examples/qos_meter/Makefile                | 1 +
 examples/qos_meter/main.c                  | 2 ++
 examples/qos_meter/meson.build             | 1 +
 examples/qos_sched/Makefile                | 1 +
 examples/qos_sched/init.c                  | 1 +
 examples/qos_sched/meson.build             | 1 +
 examples/quota_watermark/qw/Makefile       | 1 +
 examples/quota_watermark/qw/init.c         | 1 +
 examples/rxtx_callbacks/main.c             | 1 +
 examples/server_node_efd/server/Makefile   | 1 +
 examples/server_node_efd/server/init.c     | 1 +
 examples/skeleton/Makefile                 | 1 +
 examples/skeleton/basicfwd.c               | 1 +
 examples/skeleton/meson.build              | 1 +
 examples/tep_termination/Makefile          | 1 +
 examples/tep_termination/meson.build       | 1 +
 examples/tep_termination/vxlan_setup.c     | 1 +
 examples/vhost/Makefile                    | 1 +
 examples/vhost/main.c                      | 1 +
 examples/vm_power_manager/Makefile         | 1 +
 examples/vm_power_manager/main.c           | 1 +
 examples/vm_power_manager/meson.build      | 1 +
 examples/vmdq/Makefile                     | 1 +
 examples/vmdq/main.c                       | 1 +
 examples/vmdq/meson.build                  | 1 +
 examples/vmdq_dcb/Makefile                 | 1 +
 examples/vmdq_dcb/main.c                   | 1 +
 examples/vmdq_dcb/meson.build              | 1 +
 83 files changed, 85 insertions(+)
  

Comments

Aaron Conole Sept. 30, 2019, 5:47 p.m. UTC | #1
<pbhagavatula@marvell.com> writes:

> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Disable packet type parsing in examples that don't use
> `rte_mbuf::packet_type` by setting ptype_mask as 0 in
> `rte_eth_dev_set_supported_ptypes`
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> ---
>  examples/bbdev_app/main.c                  | 1 +
>  examples/bond/main.c                       | 2 ++
>  examples/distributor/Makefile              | 1 +
>  examples/distributor/main.c                | 1 +
>  examples/distributor/meson.build           | 1 +
>  examples/eventdev_pipeline/main.c          | 1 +
>  examples/eventdev_pipeline/meson.build     | 1 +
>  examples/exception_path/Makefile           | 1 +
>  examples/exception_path/main.c             | 1 +
>  examples/exception_path/meson.build        | 1 +
>  examples/flow_classify/flow_classify.c     | 1 +
>  examples/flow_filtering/Makefile           | 1 +
>  examples/flow_filtering/main.c             | 1 +
>  examples/flow_filtering/meson.build        | 1 +
>  examples/ip_pipeline/link.c                | 1 +
>  examples/ip_reassembly/Makefile            | 1 +
>  examples/ip_reassembly/main.c              | 1 +
>  examples/ip_reassembly/meson.build         | 1 +
>  examples/ipsec-secgw/ipsec-secgw.c         | 1 +
>  examples/ipv4_multicast/Makefile           | 1 +
>  examples/ipv4_multicast/main.c             | 1 +
>  examples/ipv4_multicast/meson.build        | 1 +
>  examples/kni/main.c                        | 1 +
>  examples/l2fwd-cat/Makefile                | 1 +
>  examples/l2fwd-cat/l2fwd-cat.c             | 1 +
>  examples/l2fwd-cat/meson.build             | 1 +
>  examples/l2fwd-crypto/main.c               | 1 +
>  examples/l2fwd-jobstats/Makefile           | 1 +
>  examples/l2fwd-jobstats/main.c             | 1 +
>  examples/l2fwd-jobstats/meson.build        | 1 +
>  examples/l2fwd-keepalive/Makefile          | 1 +
>  examples/l2fwd-keepalive/main.c            | 1 +
>  examples/l2fwd-keepalive/meson.build       | 1 +
>  examples/l2fwd/Makefile                    | 1 +
>  examples/l2fwd/main.c                      | 1 +
>  examples/l2fwd/meson.build                 | 1 +
>  examples/l3fwd-acl/Makefile                | 1 +
>  examples/l3fwd-acl/main.c                  | 1 +
>  examples/l3fwd-acl/meson.build             | 1 +
>  examples/l3fwd-power/main.c                | 1 +
>  examples/l3fwd-vf/Makefile                 | 1 +
>  examples/l3fwd-vf/main.c                   | 1 +
>  examples/l3fwd-vf/meson.build              | 1 +
>  examples/link_status_interrupt/Makefile    | 1 +
>  examples/link_status_interrupt/main.c      | 1 +
>  examples/link_status_interrupt/meson.build | 1 +
>  examples/load_balancer/Makefile            | 1 +
>  examples/load_balancer/init.c              | 1 +
>  examples/load_balancer/meson.build         | 1 +
>  examples/packet_ordering/Makefile          | 1 +
>  examples/packet_ordering/main.c            | 1 +
>  examples/packet_ordering/meson.build       | 1 +
>  examples/ptpclient/Makefile                | 1 +
>  examples/ptpclient/meson.build             | 1 +
>  examples/ptpclient/ptpclient.c             | 1 +
>  examples/qos_meter/Makefile                | 1 +
>  examples/qos_meter/main.c                  | 2 ++
>  examples/qos_meter/meson.build             | 1 +
>  examples/qos_sched/Makefile                | 1 +
>  examples/qos_sched/init.c                  | 1 +
>  examples/qos_sched/meson.build             | 1 +
>  examples/quota_watermark/qw/Makefile       | 1 +
>  examples/quota_watermark/qw/init.c         | 1 +
>  examples/rxtx_callbacks/main.c             | 1 +
>  examples/server_node_efd/server/Makefile   | 1 +
>  examples/server_node_efd/server/init.c     | 1 +
>  examples/skeleton/Makefile                 | 1 +
>  examples/skeleton/basicfwd.c               | 1 +
>  examples/skeleton/meson.build              | 1 +
>  examples/tep_termination/Makefile          | 1 +
>  examples/tep_termination/meson.build       | 1 +
>  examples/tep_termination/vxlan_setup.c     | 1 +
>  examples/vhost/Makefile                    | 1 +
>  examples/vhost/main.c                      | 1 +
>  examples/vm_power_manager/Makefile         | 1 +
>  examples/vm_power_manager/main.c           | 1 +
>  examples/vm_power_manager/meson.build      | 1 +
>  examples/vmdq/Makefile                     | 1 +
>  examples/vmdq/main.c                       | 1 +
>  examples/vmdq/meson.build                  | 1 +
>  examples/vmdq_dcb/Makefile                 | 1 +
>  examples/vmdq_dcb/main.c                   | 1 +
>  examples/vmdq_dcb/meson.build              | 1 +
>  83 files changed, 85 insertions(+)
>
> diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c
> index 9acf666dc..a32f63187 100644
> --- a/examples/bbdev_app/main.c
> +++ b/examples/bbdev_app/main.c
> @@ -478,6 +478,7 @@ initialize_ports(struct app_config_params *app_params,
>  	}
>  
>  	rte_eth_promiscuous_enable(port_id);
> +	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);

This is strange, since the function signature is defined (in 1/7) as:

  int rte_eth_dev_set_supported_ptypes(uint16_t port_id, uint32_t ptype_mask,
				       uint32_t *set_ptypes, int num);

Did you mean to add more args?

>  	rte_eth_macaddr_get(port_id, &bbdev_port_eth_addr);
>  	print_mac(port_id, &bbdev_port_eth_addr);
> diff --git a/examples/bond/main.c b/examples/bond/main.c
> index 1c0df9d46..8beb1dc14 100644
> --- a/examples/bond/main.c
> +++ b/examples/bond/main.c
> @@ -195,6 +195,7 @@ slave_port_init(uint16_t portid, struct rte_mempool *mbuf_pool)
>  		rte_exit(retval, "port %u: TX queue 0 setup failed (res=%d)",
>  				portid, retval);
>  
> +	rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  	retval  = rte_eth_dev_start(portid);
>  	if (retval < 0)
>  		rte_exit(retval,
> @@ -271,6 +272,7 @@ bond_port_init(struct rte_mempool *mbuf_pool)
>  		rte_exit(retval, "port %u: TX queue 0 setup failed (res=%d)",
>  				BOND_PORT, retval);
>  
> +	rte_eth_dev_set_supported_ptypes(BOND_PORT, RTE_PTYPE_UNKNOWN);
>  	retval  = rte_eth_dev_start(BOND_PORT);
>  	if (retval < 0)
>  		rte_exit(retval, "Start port %d failed (res=%d)", BOND_PORT, retval);
> diff --git a/examples/distributor/Makefile b/examples/distributor/Makefile
> index bac8d5578..a2a477279 100644
> --- a/examples/distributor/Makefile
> +++ b/examples/distributor/Makefile
> @@ -50,6 +50,7 @@ RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
>  include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  # workaround for a gcc bug with noreturn attribute
>  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
> diff --git a/examples/distributor/main.c b/examples/distributor/main.c
> index 81d7ca61d..bc945d862 100644
> --- a/examples/distributor/main.c
> +++ b/examples/distributor/main.c
> @@ -162,6 +162,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
>  			return retval;
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	retval = rte_eth_dev_start(port);
>  	if (retval < 0)
>  		return retval;
> diff --git a/examples/distributor/meson.build b/examples/distributor/meson.build
> index 26f108d65..c2976f6bd 100644
> --- a/examples/distributor/meson.build
> +++ b/examples/distributor/meson.build
> @@ -10,6 +10,7 @@
>  build = dpdk_conf.has('RTE_LIBRTE_POWER')
>  
>  deps += ['distributor', 'power']
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/eventdev_pipeline/main.c b/examples/eventdev_pipeline/main.c
> index a73b61d59..9f9968cf8 100644
> --- a/examples/eventdev_pipeline/main.c
> +++ b/examples/eventdev_pipeline/main.c
> @@ -393,6 +393,7 @@ main(int argc, char **argv)
>  
>  	/* Start the Ethernet port. */
>  	RTE_ETH_FOREACH_DEV(portid) {
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		err = rte_eth_dev_start(portid);
>  		if (err < 0)
>  			rte_exit(EXIT_FAILURE, "Error starting ethdev %d\n",
> diff --git a/examples/eventdev_pipeline/meson.build b/examples/eventdev_pipeline/meson.build
> index a54c35aa7..0fc916b05 100644
> --- a/examples/eventdev_pipeline/meson.build
> +++ b/examples/eventdev_pipeline/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += 'eventdev'
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c',
>  	'pipeline_worker_generic.c',
> diff --git a/examples/exception_path/Makefile b/examples/exception_path/Makefile
> index 90c7f133a..a7c961276 100644
> --- a/examples/exception_path/Makefile
> +++ b/examples/exception_path/Makefile
> @@ -51,6 +51,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
>  
> diff --git a/examples/exception_path/main.c b/examples/exception_path/main.c
> index 0d79e5a24..7dbc0970a 100644
> --- a/examples/exception_path/main.c
> +++ b/examples/exception_path/main.c
> @@ -464,6 +464,7 @@ init_port(uint16_t port)
>  		FATAL_ERROR("Could not setup up TX queue for port%u (%d)",
>  				port, ret);
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	ret = rte_eth_dev_start(port);
>  	if (ret < 0)
>  		FATAL_ERROR("Could not start port%u (%d)", port, ret);
> diff --git a/examples/exception_path/meson.build b/examples/exception_path/meson.build
> index c34e11e36..2b0a25036 100644
> --- a/examples/exception_path/meson.build
> +++ b/examples/exception_path/meson.build
> @@ -6,6 +6,7 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/flow_classify/flow_classify.c b/examples/flow_classify/flow_classify.c
> index bc7f43ea9..aa25218a3 100644
> --- a/examples/flow_classify/flow_classify.c
> +++ b/examples/flow_classify/flow_classify.c
> @@ -231,6 +231,7 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)
>  	}
>  
>  	/* Start the Ethernet port. */
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	retval = rte_eth_dev_start(port);
>  	if (retval < 0)
>  		return retval;
> diff --git a/examples/flow_filtering/Makefile b/examples/flow_filtering/Makefile
> index a63a75555..793a08fae 100644
> --- a/examples/flow_filtering/Makefile
> +++ b/examples/flow_filtering/Makefile
> @@ -49,6 +49,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
>  
> diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c
> index a0487be77..fbd1b6cc2 100644
> --- a/examples/flow_filtering/main.c
> +++ b/examples/flow_filtering/main.c
> @@ -176,6 +176,7 @@ init_port(void)
>  	}
>  
>  	rte_eth_promiscuous_enable(port_id);
> +	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);
>  	ret = rte_eth_dev_start(port_id);
>  	if (ret < 0) {
>  		rte_exit(EXIT_FAILURE,
> diff --git a/examples/flow_filtering/meson.build b/examples/flow_filtering/meson.build
> index 407795c42..6f5d1b08a 100644
> --- a/examples/flow_filtering/meson.build
> +++ b/examples/flow_filtering/meson.build
> @@ -6,6 +6,7 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c',
>  )
> diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c
> index 787eb866a..9f8b5b2ae 100644
> --- a/examples/ip_pipeline/link.c
> +++ b/examples/ip_pipeline/link.c
> @@ -205,6 +205,7 @@ link_create(const char *name, struct link_params *params)
>  			return NULL;
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);
>  	/* Port start */
>  	status = rte_eth_dev_start(port_id);
>  	if (status < 0)
> diff --git a/examples/ip_reassembly/Makefile b/examples/ip_reassembly/Makefile
> index 0b1a904e0..19c462388 100644
> --- a/examples/ip_reassembly/Makefile
> +++ b/examples/ip_reassembly/Makefile
> @@ -52,6 +52,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  # workaround for a gcc bug with noreturn attribute
>  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
> diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c
> index 38b39be6b..ff5407892 100644
> --- a/examples/ip_reassembly/main.c
> +++ b/examples/ip_reassembly/main.c
> @@ -1158,6 +1158,7 @@ main(int argc, char **argv)
>  		if ((enabled_port_mask & (1 << portid)) == 0) {
>  			continue;
>  		}
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/* Start device */
>  		ret = rte_eth_dev_start(portid);
>  		if (ret < 0)
> diff --git a/examples/ip_reassembly/meson.build b/examples/ip_reassembly/meson.build
> index 8ebd48291..8a667c265 100644
> --- a/examples/ip_reassembly/meson.build
> +++ b/examples/ip_reassembly/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += ['lpm', 'ip_frag']
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c
> index 0d1fd6af6..619d248c8 100644
> --- a/examples/ipsec-secgw/ipsec-secgw.c
> +++ b/examples/ipsec-secgw/ipsec-secgw.c
> @@ -2448,6 +2448,7 @@ main(int32_t argc, char **argv)
>  		if ((enabled_port_mask & (1 << portid)) == 0)
>  			continue;
>  
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/*
>  		 * Start device
>  		 * note: device must be started before a flow rule
> diff --git a/examples/ipv4_multicast/Makefile b/examples/ipv4_multicast/Makefile
> index 5f8a67dd4..5171f7ab2 100644
> --- a/examples/ipv4_multicast/Makefile
> +++ b/examples/ipv4_multicast/Makefile
> @@ -52,6 +52,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  # workaround for a gcc bug with noreturn attribute
>  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
> diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
> index 72eaadc51..29b3fed9c 100644
> --- a/examples/ipv4_multicast/main.c
> +++ b/examples/ipv4_multicast/main.c
> @@ -765,6 +765,7 @@ main(int argc, char **argv)
>  			qconf->tx_queue_id[portid] = queueid;
>  			queueid++;
>  		}
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		rte_eth_allmulticast_enable(portid);
>  		/* Start device */
>  		ret = rte_eth_dev_start(portid);
> diff --git a/examples/ipv4_multicast/meson.build b/examples/ipv4_multicast/meson.build
> index d9e4c7c21..6969e2c54 100644
> --- a/examples/ipv4_multicast/meson.build
> +++ b/examples/ipv4_multicast/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += 'hash'
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/kni/main.c b/examples/kni/main.c
> index 4710d7176..3163087ff 100644
> --- a/examples/kni/main.c
> +++ b/examples/kni/main.c
> @@ -625,6 +625,7 @@ init_port(uint16_t port)
>  		rte_exit(EXIT_FAILURE, "Could not setup up TX queue for "
>  				"port%u (%d)\n", (unsigned)port, ret);
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	ret = rte_eth_dev_start(port);
>  	if (ret < 0)
>  		rte_exit(EXIT_FAILURE, "Could not start port%u (%d)\n",
> diff --git a/examples/l2fwd-cat/Makefile b/examples/l2fwd-cat/Makefile
> index c1960d6d3..d6a25e42a 100644
> --- a/examples/l2fwd-cat/Makefile
> +++ b/examples/l2fwd-cat/Makefile
> @@ -66,6 +66,7 @@ endif
>  EXTRA_CFLAGS += -O3 -g -Wfatal-errors
>  
>  CFLAGS += -I$(PQOS_INSTALL_PATH)/../include
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  LDLIBS += -L$(PQOS_INSTALL_PATH)
>  LDLIBS += -lpqos
> diff --git a/examples/l2fwd-cat/l2fwd-cat.c b/examples/l2fwd-cat/l2fwd-cat.c
> index b34b40a00..ddd9888b1 100644
> --- a/examples/l2fwd-cat/l2fwd-cat.c
> +++ b/examples/l2fwd-cat/l2fwd-cat.c
> @@ -67,6 +67,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
>  			return retval;
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	/* Start the Ethernet port. */
>  	retval = rte_eth_dev_start(port);
>  	if (retval < 0)
> diff --git a/examples/l2fwd-cat/meson.build b/examples/l2fwd-cat/meson.build
> index 4e2777a03..37c96040d 100644
> --- a/examples/l2fwd-cat/meson.build
> +++ b/examples/l2fwd-cat/meson.build
> @@ -10,6 +10,7 @@ pqos = cc.find_library('pqos', required: false)
>  build = pqos.found()
>  ext_deps += pqos
>  cflags += '-I/usr/local/include' # assume pqos lib installed in /usr/local
> +allow_experimental_apis = true
>  sources = files(
>  	'cat.c', 'l2fwd-cat.c'
>  )
> diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c
> index 3fe2ba725..6aad08b06 100644
> --- a/examples/l2fwd-crypto/main.c
> +++ b/examples/l2fwd-crypto/main.c
> @@ -2559,6 +2559,7 @@ initialize_ports(struct l2fwd_crypto_options *options)
>  			return -1;
>  		}
>  
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/* Start device */
>  		retval = rte_eth_dev_start(portid);
>  		if (retval < 0) {
> diff --git a/examples/l2fwd-jobstats/Makefile b/examples/l2fwd-jobstats/Makefile
> index 729a39e93..09834e979 100644
> --- a/examples/l2fwd-jobstats/Makefile
> +++ b/examples/l2fwd-jobstats/Makefile
> @@ -52,6 +52,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
>  endif
> diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c
> index 77e44dc82..61ad8e759 100644
> --- a/examples/l2fwd-jobstats/main.c
> +++ b/examples/l2fwd-jobstats/main.c
> @@ -902,6 +902,7 @@ main(int argc, char **argv)
>  			"Cannot set error callback for tx buffer on port %u\n",
>  				 portid);
>  
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/* Start device */
>  		ret = rte_eth_dev_start(portid);
>  		if (ret < 0)
> diff --git a/examples/l2fwd-jobstats/meson.build b/examples/l2fwd-jobstats/meson.build
> index 1ffd484e2..3653aa7ec 100644
> --- a/examples/l2fwd-jobstats/meson.build
> +++ b/examples/l2fwd-jobstats/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += ['jobstats', 'timer']
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/l2fwd-keepalive/Makefile b/examples/l2fwd-keepalive/Makefile
> index 37de27a6f..584257ae2 100644
> --- a/examples/l2fwd-keepalive/Makefile
> +++ b/examples/l2fwd-keepalive/Makefile
> @@ -53,6 +53,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  LDFLAGS += -lrt
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
> diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c
> index 9831a4323..bf662bd37 100644
> --- a/examples/l2fwd-keepalive/main.c
> +++ b/examples/l2fwd-keepalive/main.c
> @@ -696,6 +696,7 @@ main(int argc, char **argv)
>  			"Cannot set error callback for tx buffer on port %u\n",
>  				 portid);
>  
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/* Start device */
>  		ret = rte_eth_dev_start(portid);
>  		if (ret < 0)
> diff --git a/examples/l2fwd-keepalive/meson.build b/examples/l2fwd-keepalive/meson.build
> index 6f7b007e1..2dffffaaa 100644
> --- a/examples/l2fwd-keepalive/meson.build
> +++ b/examples/l2fwd-keepalive/meson.build
> @@ -8,6 +8,7 @@
>  
>  ext_deps += cc.find_library('rt')
>  deps += 'timer'
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c', 'shm.c'
>  )
> diff --git a/examples/l2fwd/Makefile b/examples/l2fwd/Makefile
> index 230352093..123e6161c 100644
> --- a/examples/l2fwd/Makefile
> +++ b/examples/l2fwd/Makefile
> @@ -51,6 +51,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
>  endif
> diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c
> index 1e2b14297..1b940038f 100644
> --- a/examples/l2fwd/main.c
> +++ b/examples/l2fwd/main.c
> @@ -694,6 +694,7 @@ main(int argc, char **argv)
>  			"Cannot set error callback for tx buffer on port %u\n",
>  				 portid);
>  
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/* Start device */
>  		ret = rte_eth_dev_start(portid);
>  		if (ret < 0)
> diff --git a/examples/l2fwd/meson.build b/examples/l2fwd/meson.build
> index c34e11e36..2b0a25036 100644
> --- a/examples/l2fwd/meson.build
> +++ b/examples/l2fwd/meson.build
> @@ -6,6 +6,7 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/l3fwd-acl/Makefile b/examples/l3fwd-acl/Makefile
> index e2c989f71..df590f8e9 100644
> --- a/examples/l3fwd-acl/Makefile
> +++ b/examples/l3fwd-acl/Makefile
> @@ -51,6 +51,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  # workaround for a gcc bug with noreturn attribute
>  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
> diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c
> index 0c44df767..1a0c09c1d 100644
> --- a/examples/l3fwd-acl/main.c
> +++ b/examples/l3fwd-acl/main.c
> @@ -2056,6 +2056,7 @@ main(int argc, char **argv)
>  		if ((enabled_port_mask & (1 << portid)) == 0)
>  			continue;
>  
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/* Start device */
>  		ret = rte_eth_dev_start(portid);
>  		if (ret < 0)
> diff --git a/examples/l3fwd-acl/meson.build b/examples/l3fwd-acl/meson.build
> index 7096e00c1..68cebd6ce 100644
> --- a/examples/l3fwd-acl/meson.build
> +++ b/examples/l3fwd-acl/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += ['acl', 'lpm', 'hash']
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
> index fd8d9528f..136f446b3 100644
> --- a/examples/l3fwd-power/main.c
> +++ b/examples/l3fwd-power/main.c
> @@ -2426,6 +2426,7 @@ main(int argc, char **argv)
>  		if ((enabled_port_mask & (1 << portid)) == 0) {
>  			continue;
>  		}
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/* Start device */
>  		ret = rte_eth_dev_start(portid);
>  		if (ret < 0)
> diff --git a/examples/l3fwd-vf/Makefile b/examples/l3fwd-vf/Makefile
> index 7b186a23c..db7f51f2f 100644
> --- a/examples/l3fwd-vf/Makefile
> +++ b/examples/l3fwd-vf/Makefile
> @@ -51,6 +51,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3 $(USER_FLAGS)
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  # workaround for a gcc bug with noreturn attribute
>  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
> diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c
> index 572e74cf5..387d2426c 100644
> --- a/examples/l3fwd-vf/main.c
> +++ b/examples/l3fwd-vf/main.c
> @@ -1051,6 +1051,7 @@ main(int argc, char **argv)
>  		if ((enabled_port_mask & (1 << portid)) == 0) {
>  			continue;
>  		}
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/* Start device */
>  		ret = rte_eth_dev_start(portid);
>  		if (ret < 0)
> diff --git a/examples/l3fwd-vf/meson.build b/examples/l3fwd-vf/meson.build
> index 226286e74..00f3c38f4 100644
> --- a/examples/l3fwd-vf/meson.build
> +++ b/examples/l3fwd-vf/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += ['lpm', 'hash']
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/link_status_interrupt/Makefile b/examples/link_status_interrupt/Makefile
> index 97e5a14a8..6ddedd4de 100644
> --- a/examples/link_status_interrupt/Makefile
> +++ b/examples/link_status_interrupt/Makefile
> @@ -51,6 +51,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
>  endif
> diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c
> index 9cd4dc7a6..abd84b862 100644
> --- a/examples/link_status_interrupt/main.c
> +++ b/examples/link_status_interrupt/main.c
> @@ -676,6 +676,7 @@ main(int argc, char **argv)
>  			rte_exit(EXIT_FAILURE, "Cannot set error callback for "
>  					"tx buffer on port %u\n", (unsigned) portid);
>  
> +		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  		/* Start device */
>  		ret = rte_eth_dev_start(portid);
>  		if (ret < 0)
> diff --git a/examples/link_status_interrupt/meson.build b/examples/link_status_interrupt/meson.build
> index c34e11e36..2b0a25036 100644
> --- a/examples/link_status_interrupt/meson.build
> +++ b/examples/link_status_interrupt/meson.build
> @@ -6,6 +6,7 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/load_balancer/Makefile b/examples/load_balancer/Makefile
> index caae8a107..dcba9194c 100644
> --- a/examples/load_balancer/Makefile
> +++ b/examples/load_balancer/Makefile
> @@ -51,6 +51,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3 -g
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  # workaround for a gcc bug with noreturn attribute
>  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
> diff --git a/examples/load_balancer/init.c b/examples/load_balancer/init.c
> index 3ab7d0211..52f677fd4 100644
> --- a/examples/load_balancer/init.c
> +++ b/examples/load_balancer/init.c
> @@ -496,6 +496,7 @@ app_init_nics(void)
>  			}
>  		}
>  
> +		rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  		/* Start port */
>  		ret = rte_eth_dev_start(port);
>  		if (ret < 0) {
> diff --git a/examples/load_balancer/meson.build b/examples/load_balancer/meson.build
> index 4f7ac3999..19708974c 100644
> --- a/examples/load_balancer/meson.build
> +++ b/examples/load_balancer/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += 'lpm'
> +allow_experimental_apis = true
>  sources = files(
>  	'config.c', 'init.c', 'main.c', 'runtime.c'
>  )
> diff --git a/examples/packet_ordering/Makefile b/examples/packet_ordering/Makefile
> index 51acaf7eb..9ba3fa9e8 100644
> --- a/examples/packet_ordering/Makefile
> +++ b/examples/packet_ordering/Makefile
> @@ -51,6 +51,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
>  endif
> diff --git a/examples/packet_ordering/main.c b/examples/packet_ordering/main.c
> index 030e92299..41295690d 100644
> --- a/examples/packet_ordering/main.c
> +++ b/examples/packet_ordering/main.c
> @@ -312,6 +312,7 @@ configure_eth_port(uint16_t port_id)
>  			return ret;
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);
>  	ret = rte_eth_dev_start(port_id);
>  	if (ret < 0)
>  		return ret;
> diff --git a/examples/packet_ordering/meson.build b/examples/packet_ordering/meson.build
> index 6c2fccdcb..a3776946f 100644
> --- a/examples/packet_ordering/meson.build
> +++ b/examples/packet_ordering/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += 'reorder'
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/ptpclient/Makefile b/examples/ptpclient/Makefile
> index 89e2bacbd..f158d96b9 100644
> --- a/examples/ptpclient/Makefile
> +++ b/examples/ptpclient/Makefile
> @@ -50,6 +50,7 @@ RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
>  include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  CFLAGS += $(WERROR_FLAGS)
>  
>  # workaround for a gcc bug with noreturn attribute
> diff --git a/examples/ptpclient/meson.build b/examples/ptpclient/meson.build
> index fa0cbe93c..d4171a218 100644
> --- a/examples/ptpclient/meson.build
> +++ b/examples/ptpclient/meson.build
> @@ -6,6 +6,7 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> +allow_experimental_apis = true
>  sources = files(
>  	'ptpclient.c'
>  )
> diff --git a/examples/ptpclient/ptpclient.c b/examples/ptpclient/ptpclient.c
> index 31778fd95..351596fc3 100644
> --- a/examples/ptpclient/ptpclient.c
> +++ b/examples/ptpclient/ptpclient.c
> @@ -227,6 +227,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
>  			return retval;
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	/* Start the Ethernet port. */
>  	retval = rte_eth_dev_start(port);
>  	if (retval < 0)
> diff --git a/examples/qos_meter/Makefile b/examples/qos_meter/Makefile
> index e5217cf7c..a1533d08f 100644
> --- a/examples/qos_meter/Makefile
> +++ b/examples/qos_meter/Makefile
> @@ -52,6 +52,7 @@ RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
>  include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += -O3
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  CFLAGS += $(WERROR_FLAGS)
>  
>  # workaround for a gcc bug with noreturn attribute
> diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c
> index da7afe8be..2accbc9b6 100644
> --- a/examples/qos_meter/main.c
> +++ b/examples/qos_meter/main.c
> @@ -419,10 +419,12 @@ main(int argc, char **argv)
>  
>  	rte_eth_tx_buffer_init(tx_buffer, PKT_TX_BURST_MAX);
>  
> +	rte_eth_dev_set_supported_ptypes(port_rx, RTE_PTYPE_UNKNOWN);
>  	ret = rte_eth_dev_start(port_rx);
>  	if (ret < 0)
>  		rte_exit(EXIT_FAILURE, "Port %d start error (%d)\n", port_rx, ret);
>  
> +	rte_eth_dev_set_supported_ptypes(port_tx, RTE_PTYPE_UNKNOWN);
>  	ret = rte_eth_dev_start(port_tx);
>  	if (ret < 0)
>  		rte_exit(EXIT_FAILURE, "Port %d start error (%d)\n", port_tx, ret);
> diff --git a/examples/qos_meter/meson.build b/examples/qos_meter/meson.build
> index ef7779f2f..10cd4bc79 100644
> --- a/examples/qos_meter/meson.build
> +++ b/examples/qos_meter/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += 'meter'
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c', 'rte_policer.c'
>  )
> diff --git a/examples/qos_sched/Makefile b/examples/qos_sched/Makefile
> index ce2d25371..7d3d3019f 100644
> --- a/examples/qos_sched/Makefile
> +++ b/examples/qos_sched/Makefile
> @@ -58,6 +58,7 @@ else
>  
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
>  
> diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c
> index b05206d5a..35e4c90a2 100644
> --- a/examples/qos_sched/init.c
> +++ b/examples/qos_sched/init.c
> @@ -138,6 +138,7 @@ app_init_port(uint16_t portid, struct rte_mempool *mp)
>  			 "rte_eth_tx_queue_setup: err=%d, port=%u queue=%d\n",
>  			 ret, portid, 0);
>  
> +	rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
>  	/* Start device */
>  	ret = rte_eth_dev_start(portid);
>  	if (ret < 0)
> diff --git a/examples/qos_sched/meson.build b/examples/qos_sched/meson.build
> index 289b81ce8..5101652af 100644
> --- a/examples/qos_sched/meson.build
> +++ b/examples/qos_sched/meson.build
> @@ -7,6 +7,7 @@
>  # DPDK instance, use 'make'
>  
>  deps += ['sched', 'cfgfile']
> +allow_experimental_apis = true
>  sources = files(
>  	'app_thread.c', 'args.c', 'cfg_file.c', 'cmdline.c',
>  	'init.c', 'main.c', 'stats.c'
> diff --git a/examples/quota_watermark/qw/Makefile b/examples/quota_watermark/qw/Makefile
> index 3f10f01c3..e06f4482b 100644
> --- a/examples/quota_watermark/qw/Makefile
> +++ b/examples/quota_watermark/qw/Makefile
> @@ -18,5 +18,6 @@ SRCS-y := args.c init.c main.c
>  
>  CFLAGS += -O3 -DQW_SOFTWARE_FC
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
> diff --git a/examples/quota_watermark/qw/init.c b/examples/quota_watermark/qw/init.c
> index 5a0f64f45..098e3c16e 100644
> --- a/examples/quota_watermark/qw/init.c
> +++ b/examples/quota_watermark/qw/init.c
> @@ -96,6 +96,7 @@ void configure_eth_port(uint16_t port_id)
>  				"Failed to setup hardware flow control on port %u (error %d)\n",
>  				(unsigned int) port_id, ret);
>  
> +	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);
>  	/* Start the port */
>  	ret = rte_eth_dev_start(port_id);
>  	if (ret < 0)
> diff --git a/examples/rxtx_callbacks/main.c b/examples/rxtx_callbacks/main.c
> index dbcd9f4fc..c4acac585 100644
> --- a/examples/rxtx_callbacks/main.c
> +++ b/examples/rxtx_callbacks/main.c
> @@ -152,6 +152,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
>  			return retval;
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	retval  = rte_eth_dev_start(port);
>  	if (retval < 0)
>  		return retval;
> diff --git a/examples/server_node_efd/server/Makefile b/examples/server_node_efd/server/Makefile
> index 4837bd3ea..acbd12ae2 100644
> --- a/examples/server_node_efd/server/Makefile
> +++ b/examples/server_node_efd/server/Makefile
> @@ -25,5 +25,6 @@ INC := $(sort $(wildcard *.h))
>  
>  CFLAGS += $(WERROR_FLAGS) -O3
>  CFLAGS += -I$(SRCDIR)/../shared
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
> diff --git a/examples/server_node_efd/server/init.c b/examples/server_node_efd/server/init.c
> index af5a18e28..b4ff9dd57 100644
> --- a/examples/server_node_efd/server/init.c
> +++ b/examples/server_node_efd/server/init.c
> @@ -149,6 +149,7 @@ init_port(uint16_t port_num)
>  
>  	rte_eth_promiscuous_enable(port_num);
>  
> +	rte_eth_dev_set_supported_ptypes(port_num, RTE_PTYPE_UNKNOWN);
>  	retval = rte_eth_dev_start(port_num);
>  	if (retval < 0)
>  		return retval;
> diff --git a/examples/skeleton/Makefile b/examples/skeleton/Makefile
> index c5ac26029..0037d6b25 100644
> --- a/examples/skeleton/Makefile
> +++ b/examples/skeleton/Makefile
> @@ -50,6 +50,7 @@ RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
>  include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  # workaround for a gcc bug with noreturn attribute
>  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
> diff --git a/examples/skeleton/basicfwd.c b/examples/skeleton/basicfwd.c
> index a8a8e98f0..6c10a06ef 100644
> --- a/examples/skeleton/basicfwd.c
> +++ b/examples/skeleton/basicfwd.c
> @@ -76,6 +76,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
>  			return retval;
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	/* Start the Ethernet port. */
>  	retval = rte_eth_dev_start(port);
>  	if (retval < 0)
> diff --git a/examples/skeleton/meson.build b/examples/skeleton/meson.build
> index 9bb9ec329..ef46b187e 100644
> --- a/examples/skeleton/meson.build
> +++ b/examples/skeleton/meson.build
> @@ -6,6 +6,7 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> +allow_experimental_apis = true
>  sources = files(
>  	'basicfwd.c'
>  )
> diff --git a/examples/tep_termination/Makefile b/examples/tep_termination/Makefile
> index 31165bd92..586838676 100644
> --- a/examples/tep_termination/Makefile
> +++ b/examples/tep_termination/Makefile
> @@ -61,6 +61,7 @@ endif
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  CFLAGS += -Wno-deprecated-declarations
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
>  endif
> diff --git a/examples/tep_termination/meson.build b/examples/tep_termination/meson.build
> index f65d68980..f40b1c0b8 100644
> --- a/examples/tep_termination/meson.build
> +++ b/examples/tep_termination/meson.build
> @@ -11,6 +11,7 @@ if not is_linux
>  endif
>  deps += ['hash', 'vhost']
>  cflags += '-Wno-deprecated-declarations'
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c', 'vxlan.c', 'vxlan_setup.c'
>  )
> diff --git a/examples/tep_termination/vxlan_setup.c b/examples/tep_termination/vxlan_setup.c
> index 9a0880002..538a54b3a 100644
> --- a/examples/tep_termination/vxlan_setup.c
> +++ b/examples/tep_termination/vxlan_setup.c
> @@ -167,6 +167,7 @@ vxlan_port_init(uint16_t port, struct rte_mempool *mbuf_pool)
>  			return retval;
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	/* Start the device. */
>  	retval  = rte_eth_dev_start(port);
>  	if (retval < 0)
> diff --git a/examples/vhost/Makefile b/examples/vhost/Makefile
> index f84b7f017..7722e81c7 100644
> --- a/examples/vhost/Makefile
> +++ b/examples/vhost/Makefile
> @@ -62,6 +62,7 @@ else
>  CFLAGS += -DALLOW_EXPERIMENTAL_API
>  CFLAGS += -O2 -D_FILE_OFFSET_BITS=64
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  include $(RTE_SDK)/mk/rte.extapp.mk
>  
> diff --git a/examples/vhost/main.c b/examples/vhost/main.c
> index 0961db080..57438b22c 100644
> --- a/examples/vhost/main.c
> +++ b/examples/vhost/main.c
> @@ -321,6 +321,7 @@ port_init(uint16_t port)
>  		}
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	/* Start the device. */
>  	retval  = rte_eth_dev_start(port);
>  	if (retval < 0) {
> diff --git a/examples/vm_power_manager/Makefile b/examples/vm_power_manager/Makefile
> index 2fdb991d7..65c2ad179 100644
> --- a/examples/vm_power_manager/Makefile
> +++ b/examples/vm_power_manager/Makefile
> @@ -28,6 +28,7 @@ endif
>  
>  CFLAGS += -O3 -I$(RTE_SDK)/lib/librte_power/
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  LDLIBS += -lvirt
>  
> diff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c
> index 54c704610..190a7a9ea 100644
> --- a/examples/vm_power_manager/main.c
> +++ b/examples/vm_power_manager/main.c
> @@ -99,6 +99,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
>  			return retval;
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	/* Start the Ethernet port. */
>  	retval = rte_eth_dev_start(port);
>  	if (retval < 0)
> diff --git a/examples/vm_power_manager/meson.build b/examples/vm_power_manager/meson.build
> index 20a4a05b3..54e2b584f 100644
> --- a/examples/vm_power_manager/meson.build
> +++ b/examples/vm_power_manager/meson.build
> @@ -25,6 +25,7 @@ if dpdk_conf.has('RTE_LIBRTE_IXGBE_PMD')
>  	deps += ['pmd_ixgbe']
>  endif
>  
> +allow_experimental_apis = true
>  sources = files(
>  	'channel_manager.c', 'channel_monitor.c', 'main.c', 'parse.c', 'power_manager.c', 'vm_power_cli.c'
>  )
> diff --git a/examples/vmdq/Makefile b/examples/vmdq/Makefile
> index 1557ee86b..2168747cc 100644
> --- a/examples/vmdq/Makefile
> +++ b/examples/vmdq/Makefile
> @@ -50,6 +50,7 @@ RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
>  include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  EXTRA_CFLAGS += -O3
>  
> diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
> index 7281ffd7f..87cf230f4 100644
> --- a/examples/vmdq/main.c
> +++ b/examples/vmdq/main.c
> @@ -258,6 +258,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
>  		}
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	retval  = rte_eth_dev_start(port);
>  	if (retval < 0) {
>  		printf("port %d start failed\n", port);
> diff --git a/examples/vmdq/meson.build b/examples/vmdq/meson.build
> index c34e11e36..2b0a25036 100644
> --- a/examples/vmdq/meson.build
> +++ b/examples/vmdq/meson.build
> @@ -6,6 +6,7 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
> diff --git a/examples/vmdq_dcb/Makefile b/examples/vmdq_dcb/Makefile
> index 391096cfb..ea1574d91 100644
> --- a/examples/vmdq_dcb/Makefile
> +++ b/examples/vmdq_dcb/Makefile
> @@ -50,6 +50,7 @@ RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
>  include $(RTE_SDK)/mk/rte.vars.mk
>  
>  CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DALLOW_EXPERIMENTAL_API
>  
>  # workaround for a gcc bug with noreturn attribute
>  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
> diff --git a/examples/vmdq_dcb/main.c b/examples/vmdq_dcb/main.c
> index 389000327..bace88e47 100644
> --- a/examples/vmdq_dcb/main.c
> +++ b/examples/vmdq_dcb/main.c
> @@ -313,6 +313,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
>  		}
>  	}
>  
> +	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
>  	retval  = rte_eth_dev_start(port);
>  	if (retval < 0) {
>  		printf("port %d start failed\n", port);
> diff --git a/examples/vmdq_dcb/meson.build b/examples/vmdq_dcb/meson.build
> index c34e11e36..2b0a25036 100644
> --- a/examples/vmdq_dcb/meson.build
> +++ b/examples/vmdq_dcb/meson.build
> @@ -6,6 +6,7 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> +allow_experimental_apis = true
>  sources = files(
>  	'main.c'
>  )
  
Pavan Nikhilesh Bhagavatula Oct. 1, 2019, 5:02 a.m. UTC | #2
<snip>
>*app_params,
>>  	}
>>
>>  	rte_eth_promiscuous_enable(port_id);
>> +	rte_eth_dev_set_supported_ptypes(port_id,
>RTE_PTYPE_UNKNOWN);
>
>This is strange, since the function signature is defined (in 1/7) as:
>
>  int rte_eth_dev_set_supported_ptypes(uint16_t port_id, uint32_t
>ptype_mask,
>				       uint32_t *set_ptypes, int num);
>
>Did you mean to add more args?

Ah yes, my bad. I will send v4.

Thanks,
Pavan.

>
>>  	rte_eth_macaddr_get(port_id, &bbdev_port_eth_addr);

<snip>
  

Patch

diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c
index 9acf666dc..a32f63187 100644
--- a/examples/bbdev_app/main.c
+++ b/examples/bbdev_app/main.c
@@ -478,6 +478,7 @@  initialize_ports(struct app_config_params *app_params,
 	}
 
 	rte_eth_promiscuous_enable(port_id);
+	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);
 
 	rte_eth_macaddr_get(port_id, &bbdev_port_eth_addr);
 	print_mac(port_id, &bbdev_port_eth_addr);
diff --git a/examples/bond/main.c b/examples/bond/main.c
index 1c0df9d46..8beb1dc14 100644
--- a/examples/bond/main.c
+++ b/examples/bond/main.c
@@ -195,6 +195,7 @@  slave_port_init(uint16_t portid, struct rte_mempool *mbuf_pool)
 		rte_exit(retval, "port %u: TX queue 0 setup failed (res=%d)",
 				portid, retval);
 
+	rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 	retval  = rte_eth_dev_start(portid);
 	if (retval < 0)
 		rte_exit(retval,
@@ -271,6 +272,7 @@  bond_port_init(struct rte_mempool *mbuf_pool)
 		rte_exit(retval, "port %u: TX queue 0 setup failed (res=%d)",
 				BOND_PORT, retval);
 
+	rte_eth_dev_set_supported_ptypes(BOND_PORT, RTE_PTYPE_UNKNOWN);
 	retval  = rte_eth_dev_start(BOND_PORT);
 	if (retval < 0)
 		rte_exit(retval, "Start port %d failed (res=%d)", BOND_PORT, retval);
diff --git a/examples/distributor/Makefile b/examples/distributor/Makefile
index bac8d5578..a2a477279 100644
--- a/examples/distributor/Makefile
+++ b/examples/distributor/Makefile
@@ -50,6 +50,7 @@  RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
 include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # workaround for a gcc bug with noreturn attribute
 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
diff --git a/examples/distributor/main.c b/examples/distributor/main.c
index 81d7ca61d..bc945d862 100644
--- a/examples/distributor/main.c
+++ b/examples/distributor/main.c
@@ -162,6 +162,7 @@  port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 			return retval;
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	retval = rte_eth_dev_start(port);
 	if (retval < 0)
 		return retval;
diff --git a/examples/distributor/meson.build b/examples/distributor/meson.build
index 26f108d65..c2976f6bd 100644
--- a/examples/distributor/meson.build
+++ b/examples/distributor/meson.build
@@ -10,6 +10,7 @@ 
 build = dpdk_conf.has('RTE_LIBRTE_POWER')
 
 deps += ['distributor', 'power']
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/eventdev_pipeline/main.c b/examples/eventdev_pipeline/main.c
index a73b61d59..9f9968cf8 100644
--- a/examples/eventdev_pipeline/main.c
+++ b/examples/eventdev_pipeline/main.c
@@ -393,6 +393,7 @@  main(int argc, char **argv)
 
 	/* Start the Ethernet port. */
 	RTE_ETH_FOREACH_DEV(portid) {
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		err = rte_eth_dev_start(portid);
 		if (err < 0)
 			rte_exit(EXIT_FAILURE, "Error starting ethdev %d\n",
diff --git a/examples/eventdev_pipeline/meson.build b/examples/eventdev_pipeline/meson.build
index a54c35aa7..0fc916b05 100644
--- a/examples/eventdev_pipeline/meson.build
+++ b/examples/eventdev_pipeline/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += 'eventdev'
+allow_experimental_apis = true
 sources = files(
 	'main.c',
 	'pipeline_worker_generic.c',
diff --git a/examples/exception_path/Makefile b/examples/exception_path/Makefile
index 90c7f133a..a7c961276 100644
--- a/examples/exception_path/Makefile
+++ b/examples/exception_path/Makefile
@@ -51,6 +51,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
 
diff --git a/examples/exception_path/main.c b/examples/exception_path/main.c
index 0d79e5a24..7dbc0970a 100644
--- a/examples/exception_path/main.c
+++ b/examples/exception_path/main.c
@@ -464,6 +464,7 @@  init_port(uint16_t port)
 		FATAL_ERROR("Could not setup up TX queue for port%u (%d)",
 				port, ret);
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	ret = rte_eth_dev_start(port);
 	if (ret < 0)
 		FATAL_ERROR("Could not start port%u (%d)", port, ret);
diff --git a/examples/exception_path/meson.build b/examples/exception_path/meson.build
index c34e11e36..2b0a25036 100644
--- a/examples/exception_path/meson.build
+++ b/examples/exception_path/meson.build
@@ -6,6 +6,7 @@ 
 # To build this example as a standalone application with an already-installed
 # DPDK instance, use 'make'
 
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/flow_classify/flow_classify.c b/examples/flow_classify/flow_classify.c
index bc7f43ea9..aa25218a3 100644
--- a/examples/flow_classify/flow_classify.c
+++ b/examples/flow_classify/flow_classify.c
@@ -231,6 +231,7 @@  port_init(uint8_t port, struct rte_mempool *mbuf_pool)
 	}
 
 	/* Start the Ethernet port. */
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	retval = rte_eth_dev_start(port);
 	if (retval < 0)
 		return retval;
diff --git a/examples/flow_filtering/Makefile b/examples/flow_filtering/Makefile
index a63a75555..793a08fae 100644
--- a/examples/flow_filtering/Makefile
+++ b/examples/flow_filtering/Makefile
@@ -49,6 +49,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
 
diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c
index a0487be77..fbd1b6cc2 100644
--- a/examples/flow_filtering/main.c
+++ b/examples/flow_filtering/main.c
@@ -176,6 +176,7 @@  init_port(void)
 	}
 
 	rte_eth_promiscuous_enable(port_id);
+	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);
 	ret = rte_eth_dev_start(port_id);
 	if (ret < 0) {
 		rte_exit(EXIT_FAILURE,
diff --git a/examples/flow_filtering/meson.build b/examples/flow_filtering/meson.build
index 407795c42..6f5d1b08a 100644
--- a/examples/flow_filtering/meson.build
+++ b/examples/flow_filtering/meson.build
@@ -6,6 +6,7 @@ 
 # To build this example as a standalone application with an already-installed
 # DPDK instance, use 'make'
 
+allow_experimental_apis = true
 sources = files(
 	'main.c',
 )
diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c
index 787eb866a..9f8b5b2ae 100644
--- a/examples/ip_pipeline/link.c
+++ b/examples/ip_pipeline/link.c
@@ -205,6 +205,7 @@  link_create(const char *name, struct link_params *params)
 			return NULL;
 	}
 
+	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);
 	/* Port start */
 	status = rte_eth_dev_start(port_id);
 	if (status < 0)
diff --git a/examples/ip_reassembly/Makefile b/examples/ip_reassembly/Makefile
index 0b1a904e0..19c462388 100644
--- a/examples/ip_reassembly/Makefile
+++ b/examples/ip_reassembly/Makefile
@@ -52,6 +52,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # workaround for a gcc bug with noreturn attribute
 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c
index 38b39be6b..ff5407892 100644
--- a/examples/ip_reassembly/main.c
+++ b/examples/ip_reassembly/main.c
@@ -1158,6 +1158,7 @@  main(int argc, char **argv)
 		if ((enabled_port_mask & (1 << portid)) == 0) {
 			continue;
 		}
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/* Start device */
 		ret = rte_eth_dev_start(portid);
 		if (ret < 0)
diff --git a/examples/ip_reassembly/meson.build b/examples/ip_reassembly/meson.build
index 8ebd48291..8a667c265 100644
--- a/examples/ip_reassembly/meson.build
+++ b/examples/ip_reassembly/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += ['lpm', 'ip_frag']
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c
index 0d1fd6af6..619d248c8 100644
--- a/examples/ipsec-secgw/ipsec-secgw.c
+++ b/examples/ipsec-secgw/ipsec-secgw.c
@@ -2448,6 +2448,7 @@  main(int32_t argc, char **argv)
 		if ((enabled_port_mask & (1 << portid)) == 0)
 			continue;
 
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/*
 		 * Start device
 		 * note: device must be started before a flow rule
diff --git a/examples/ipv4_multicast/Makefile b/examples/ipv4_multicast/Makefile
index 5f8a67dd4..5171f7ab2 100644
--- a/examples/ipv4_multicast/Makefile
+++ b/examples/ipv4_multicast/Makefile
@@ -52,6 +52,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # workaround for a gcc bug with noreturn attribute
 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
index 72eaadc51..29b3fed9c 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
@@ -765,6 +765,7 @@  main(int argc, char **argv)
 			qconf->tx_queue_id[portid] = queueid;
 			queueid++;
 		}
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		rte_eth_allmulticast_enable(portid);
 		/* Start device */
 		ret = rte_eth_dev_start(portid);
diff --git a/examples/ipv4_multicast/meson.build b/examples/ipv4_multicast/meson.build
index d9e4c7c21..6969e2c54 100644
--- a/examples/ipv4_multicast/meson.build
+++ b/examples/ipv4_multicast/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += 'hash'
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/kni/main.c b/examples/kni/main.c
index 4710d7176..3163087ff 100644
--- a/examples/kni/main.c
+++ b/examples/kni/main.c
@@ -625,6 +625,7 @@  init_port(uint16_t port)
 		rte_exit(EXIT_FAILURE, "Could not setup up TX queue for "
 				"port%u (%d)\n", (unsigned)port, ret);
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	ret = rte_eth_dev_start(port);
 	if (ret < 0)
 		rte_exit(EXIT_FAILURE, "Could not start port%u (%d)\n",
diff --git a/examples/l2fwd-cat/Makefile b/examples/l2fwd-cat/Makefile
index c1960d6d3..d6a25e42a 100644
--- a/examples/l2fwd-cat/Makefile
+++ b/examples/l2fwd-cat/Makefile
@@ -66,6 +66,7 @@  endif
 EXTRA_CFLAGS += -O3 -g -Wfatal-errors
 
 CFLAGS += -I$(PQOS_INSTALL_PATH)/../include
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -L$(PQOS_INSTALL_PATH)
 LDLIBS += -lpqos
diff --git a/examples/l2fwd-cat/l2fwd-cat.c b/examples/l2fwd-cat/l2fwd-cat.c
index b34b40a00..ddd9888b1 100644
--- a/examples/l2fwd-cat/l2fwd-cat.c
+++ b/examples/l2fwd-cat/l2fwd-cat.c
@@ -67,6 +67,7 @@  port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 			return retval;
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	/* Start the Ethernet port. */
 	retval = rte_eth_dev_start(port);
 	if (retval < 0)
diff --git a/examples/l2fwd-cat/meson.build b/examples/l2fwd-cat/meson.build
index 4e2777a03..37c96040d 100644
--- a/examples/l2fwd-cat/meson.build
+++ b/examples/l2fwd-cat/meson.build
@@ -10,6 +10,7 @@  pqos = cc.find_library('pqos', required: false)
 build = pqos.found()
 ext_deps += pqos
 cflags += '-I/usr/local/include' # assume pqos lib installed in /usr/local
+allow_experimental_apis = true
 sources = files(
 	'cat.c', 'l2fwd-cat.c'
 )
diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c
index 3fe2ba725..6aad08b06 100644
--- a/examples/l2fwd-crypto/main.c
+++ b/examples/l2fwd-crypto/main.c
@@ -2559,6 +2559,7 @@  initialize_ports(struct l2fwd_crypto_options *options)
 			return -1;
 		}
 
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/* Start device */
 		retval = rte_eth_dev_start(portid);
 		if (retval < 0) {
diff --git a/examples/l2fwd-jobstats/Makefile b/examples/l2fwd-jobstats/Makefile
index 729a39e93..09834e979 100644
--- a/examples/l2fwd-jobstats/Makefile
+++ b/examples/l2fwd-jobstats/Makefile
@@ -52,6 +52,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
 endif
diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c
index 77e44dc82..61ad8e759 100644
--- a/examples/l2fwd-jobstats/main.c
+++ b/examples/l2fwd-jobstats/main.c
@@ -902,6 +902,7 @@  main(int argc, char **argv)
 			"Cannot set error callback for tx buffer on port %u\n",
 				 portid);
 
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/* Start device */
 		ret = rte_eth_dev_start(portid);
 		if (ret < 0)
diff --git a/examples/l2fwd-jobstats/meson.build b/examples/l2fwd-jobstats/meson.build
index 1ffd484e2..3653aa7ec 100644
--- a/examples/l2fwd-jobstats/meson.build
+++ b/examples/l2fwd-jobstats/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += ['jobstats', 'timer']
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/l2fwd-keepalive/Makefile b/examples/l2fwd-keepalive/Makefile
index 37de27a6f..584257ae2 100644
--- a/examples/l2fwd-keepalive/Makefile
+++ b/examples/l2fwd-keepalive/Makefile
@@ -53,6 +53,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDFLAGS += -lrt
 
 include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c
index 9831a4323..bf662bd37 100644
--- a/examples/l2fwd-keepalive/main.c
+++ b/examples/l2fwd-keepalive/main.c
@@ -696,6 +696,7 @@  main(int argc, char **argv)
 			"Cannot set error callback for tx buffer on port %u\n",
 				 portid);
 
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/* Start device */
 		ret = rte_eth_dev_start(portid);
 		if (ret < 0)
diff --git a/examples/l2fwd-keepalive/meson.build b/examples/l2fwd-keepalive/meson.build
index 6f7b007e1..2dffffaaa 100644
--- a/examples/l2fwd-keepalive/meson.build
+++ b/examples/l2fwd-keepalive/meson.build
@@ -8,6 +8,7 @@ 
 
 ext_deps += cc.find_library('rt')
 deps += 'timer'
+allow_experimental_apis = true
 sources = files(
 	'main.c', 'shm.c'
 )
diff --git a/examples/l2fwd/Makefile b/examples/l2fwd/Makefile
index 230352093..123e6161c 100644
--- a/examples/l2fwd/Makefile
+++ b/examples/l2fwd/Makefile
@@ -51,6 +51,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
 endif
diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c
index 1e2b14297..1b940038f 100644
--- a/examples/l2fwd/main.c
+++ b/examples/l2fwd/main.c
@@ -694,6 +694,7 @@  main(int argc, char **argv)
 			"Cannot set error callback for tx buffer on port %u\n",
 				 portid);
 
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/* Start device */
 		ret = rte_eth_dev_start(portid);
 		if (ret < 0)
diff --git a/examples/l2fwd/meson.build b/examples/l2fwd/meson.build
index c34e11e36..2b0a25036 100644
--- a/examples/l2fwd/meson.build
+++ b/examples/l2fwd/meson.build
@@ -6,6 +6,7 @@ 
 # To build this example as a standalone application with an already-installed
 # DPDK instance, use 'make'
 
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/l3fwd-acl/Makefile b/examples/l3fwd-acl/Makefile
index e2c989f71..df590f8e9 100644
--- a/examples/l3fwd-acl/Makefile
+++ b/examples/l3fwd-acl/Makefile
@@ -51,6 +51,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # workaround for a gcc bug with noreturn attribute
 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c
index 0c44df767..1a0c09c1d 100644
--- a/examples/l3fwd-acl/main.c
+++ b/examples/l3fwd-acl/main.c
@@ -2056,6 +2056,7 @@  main(int argc, char **argv)
 		if ((enabled_port_mask & (1 << portid)) == 0)
 			continue;
 
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/* Start device */
 		ret = rte_eth_dev_start(portid);
 		if (ret < 0)
diff --git a/examples/l3fwd-acl/meson.build b/examples/l3fwd-acl/meson.build
index 7096e00c1..68cebd6ce 100644
--- a/examples/l3fwd-acl/meson.build
+++ b/examples/l3fwd-acl/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += ['acl', 'lpm', 'hash']
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index fd8d9528f..136f446b3 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -2426,6 +2426,7 @@  main(int argc, char **argv)
 		if ((enabled_port_mask & (1 << portid)) == 0) {
 			continue;
 		}
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/* Start device */
 		ret = rte_eth_dev_start(portid);
 		if (ret < 0)
diff --git a/examples/l3fwd-vf/Makefile b/examples/l3fwd-vf/Makefile
index 7b186a23c..db7f51f2f 100644
--- a/examples/l3fwd-vf/Makefile
+++ b/examples/l3fwd-vf/Makefile
@@ -51,6 +51,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3 $(USER_FLAGS)
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # workaround for a gcc bug with noreturn attribute
 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c
index 572e74cf5..387d2426c 100644
--- a/examples/l3fwd-vf/main.c
+++ b/examples/l3fwd-vf/main.c
@@ -1051,6 +1051,7 @@  main(int argc, char **argv)
 		if ((enabled_port_mask & (1 << portid)) == 0) {
 			continue;
 		}
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/* Start device */
 		ret = rte_eth_dev_start(portid);
 		if (ret < 0)
diff --git a/examples/l3fwd-vf/meson.build b/examples/l3fwd-vf/meson.build
index 226286e74..00f3c38f4 100644
--- a/examples/l3fwd-vf/meson.build
+++ b/examples/l3fwd-vf/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += ['lpm', 'hash']
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/link_status_interrupt/Makefile b/examples/link_status_interrupt/Makefile
index 97e5a14a8..6ddedd4de 100644
--- a/examples/link_status_interrupt/Makefile
+++ b/examples/link_status_interrupt/Makefile
@@ -51,6 +51,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
 endif
diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c
index 9cd4dc7a6..abd84b862 100644
--- a/examples/link_status_interrupt/main.c
+++ b/examples/link_status_interrupt/main.c
@@ -676,6 +676,7 @@  main(int argc, char **argv)
 			rte_exit(EXIT_FAILURE, "Cannot set error callback for "
 					"tx buffer on port %u\n", (unsigned) portid);
 
+		rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 		/* Start device */
 		ret = rte_eth_dev_start(portid);
 		if (ret < 0)
diff --git a/examples/link_status_interrupt/meson.build b/examples/link_status_interrupt/meson.build
index c34e11e36..2b0a25036 100644
--- a/examples/link_status_interrupt/meson.build
+++ b/examples/link_status_interrupt/meson.build
@@ -6,6 +6,7 @@ 
 # To build this example as a standalone application with an already-installed
 # DPDK instance, use 'make'
 
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/load_balancer/Makefile b/examples/load_balancer/Makefile
index caae8a107..dcba9194c 100644
--- a/examples/load_balancer/Makefile
+++ b/examples/load_balancer/Makefile
@@ -51,6 +51,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3 -g
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # workaround for a gcc bug with noreturn attribute
 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
diff --git a/examples/load_balancer/init.c b/examples/load_balancer/init.c
index 3ab7d0211..52f677fd4 100644
--- a/examples/load_balancer/init.c
+++ b/examples/load_balancer/init.c
@@ -496,6 +496,7 @@  app_init_nics(void)
 			}
 		}
 
+		rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 		/* Start port */
 		ret = rte_eth_dev_start(port);
 		if (ret < 0) {
diff --git a/examples/load_balancer/meson.build b/examples/load_balancer/meson.build
index 4f7ac3999..19708974c 100644
--- a/examples/load_balancer/meson.build
+++ b/examples/load_balancer/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += 'lpm'
+allow_experimental_apis = true
 sources = files(
 	'config.c', 'init.c', 'main.c', 'runtime.c'
 )
diff --git a/examples/packet_ordering/Makefile b/examples/packet_ordering/Makefile
index 51acaf7eb..9ba3fa9e8 100644
--- a/examples/packet_ordering/Makefile
+++ b/examples/packet_ordering/Makefile
@@ -51,6 +51,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
 endif
diff --git a/examples/packet_ordering/main.c b/examples/packet_ordering/main.c
index 030e92299..41295690d 100644
--- a/examples/packet_ordering/main.c
+++ b/examples/packet_ordering/main.c
@@ -312,6 +312,7 @@  configure_eth_port(uint16_t port_id)
 			return ret;
 	}
 
+	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);
 	ret = rte_eth_dev_start(port_id);
 	if (ret < 0)
 		return ret;
diff --git a/examples/packet_ordering/meson.build b/examples/packet_ordering/meson.build
index 6c2fccdcb..a3776946f 100644
--- a/examples/packet_ordering/meson.build
+++ b/examples/packet_ordering/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += 'reorder'
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/ptpclient/Makefile b/examples/ptpclient/Makefile
index 89e2bacbd..f158d96b9 100644
--- a/examples/ptpclient/Makefile
+++ b/examples/ptpclient/Makefile
@@ -50,6 +50,7 @@  RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
 include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # workaround for a gcc bug with noreturn attribute
diff --git a/examples/ptpclient/meson.build b/examples/ptpclient/meson.build
index fa0cbe93c..d4171a218 100644
--- a/examples/ptpclient/meson.build
+++ b/examples/ptpclient/meson.build
@@ -6,6 +6,7 @@ 
 # To build this example as a standalone application with an already-installed
 # DPDK instance, use 'make'
 
+allow_experimental_apis = true
 sources = files(
 	'ptpclient.c'
 )
diff --git a/examples/ptpclient/ptpclient.c b/examples/ptpclient/ptpclient.c
index 31778fd95..351596fc3 100644
--- a/examples/ptpclient/ptpclient.c
+++ b/examples/ptpclient/ptpclient.c
@@ -227,6 +227,7 @@  port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 			return retval;
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	/* Start the Ethernet port. */
 	retval = rte_eth_dev_start(port);
 	if (retval < 0)
diff --git a/examples/qos_meter/Makefile b/examples/qos_meter/Makefile
index e5217cf7c..a1533d08f 100644
--- a/examples/qos_meter/Makefile
+++ b/examples/qos_meter/Makefile
@@ -52,6 +52,7 @@  RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
 include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += -O3
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # workaround for a gcc bug with noreturn attribute
diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c
index da7afe8be..2accbc9b6 100644
--- a/examples/qos_meter/main.c
+++ b/examples/qos_meter/main.c
@@ -419,10 +419,12 @@  main(int argc, char **argv)
 
 	rte_eth_tx_buffer_init(tx_buffer, PKT_TX_BURST_MAX);
 
+	rte_eth_dev_set_supported_ptypes(port_rx, RTE_PTYPE_UNKNOWN);
 	ret = rte_eth_dev_start(port_rx);
 	if (ret < 0)
 		rte_exit(EXIT_FAILURE, "Port %d start error (%d)\n", port_rx, ret);
 
+	rte_eth_dev_set_supported_ptypes(port_tx, RTE_PTYPE_UNKNOWN);
 	ret = rte_eth_dev_start(port_tx);
 	if (ret < 0)
 		rte_exit(EXIT_FAILURE, "Port %d start error (%d)\n", port_tx, ret);
diff --git a/examples/qos_meter/meson.build b/examples/qos_meter/meson.build
index ef7779f2f..10cd4bc79 100644
--- a/examples/qos_meter/meson.build
+++ b/examples/qos_meter/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += 'meter'
+allow_experimental_apis = true
 sources = files(
 	'main.c', 'rte_policer.c'
 )
diff --git a/examples/qos_sched/Makefile b/examples/qos_sched/Makefile
index ce2d25371..7d3d3019f 100644
--- a/examples/qos_sched/Makefile
+++ b/examples/qos_sched/Makefile
@@ -58,6 +58,7 @@  else
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
 
diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c
index b05206d5a..35e4c90a2 100644
--- a/examples/qos_sched/init.c
+++ b/examples/qos_sched/init.c
@@ -138,6 +138,7 @@  app_init_port(uint16_t portid, struct rte_mempool *mp)
 			 "rte_eth_tx_queue_setup: err=%d, port=%u queue=%d\n",
 			 ret, portid, 0);
 
+	rte_eth_dev_set_supported_ptypes(portid, RTE_PTYPE_UNKNOWN);
 	/* Start device */
 	ret = rte_eth_dev_start(portid);
 	if (ret < 0)
diff --git a/examples/qos_sched/meson.build b/examples/qos_sched/meson.build
index 289b81ce8..5101652af 100644
--- a/examples/qos_sched/meson.build
+++ b/examples/qos_sched/meson.build
@@ -7,6 +7,7 @@ 
 # DPDK instance, use 'make'
 
 deps += ['sched', 'cfgfile']
+allow_experimental_apis = true
 sources = files(
 	'app_thread.c', 'args.c', 'cfg_file.c', 'cmdline.c',
 	'init.c', 'main.c', 'stats.c'
diff --git a/examples/quota_watermark/qw/Makefile b/examples/quota_watermark/qw/Makefile
index 3f10f01c3..e06f4482b 100644
--- a/examples/quota_watermark/qw/Makefile
+++ b/examples/quota_watermark/qw/Makefile
@@ -18,5 +18,6 @@  SRCS-y := args.c init.c main.c
 
 CFLAGS += -O3 -DQW_SOFTWARE_FC
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/quota_watermark/qw/init.c b/examples/quota_watermark/qw/init.c
index 5a0f64f45..098e3c16e 100644
--- a/examples/quota_watermark/qw/init.c
+++ b/examples/quota_watermark/qw/init.c
@@ -96,6 +96,7 @@  void configure_eth_port(uint16_t port_id)
 				"Failed to setup hardware flow control on port %u (error %d)\n",
 				(unsigned int) port_id, ret);
 
+	rte_eth_dev_set_supported_ptypes(port_id, RTE_PTYPE_UNKNOWN);
 	/* Start the port */
 	ret = rte_eth_dev_start(port_id);
 	if (ret < 0)
diff --git a/examples/rxtx_callbacks/main.c b/examples/rxtx_callbacks/main.c
index dbcd9f4fc..c4acac585 100644
--- a/examples/rxtx_callbacks/main.c
+++ b/examples/rxtx_callbacks/main.c
@@ -152,6 +152,7 @@  port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 			return retval;
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	retval  = rte_eth_dev_start(port);
 	if (retval < 0)
 		return retval;
diff --git a/examples/server_node_efd/server/Makefile b/examples/server_node_efd/server/Makefile
index 4837bd3ea..acbd12ae2 100644
--- a/examples/server_node_efd/server/Makefile
+++ b/examples/server_node_efd/server/Makefile
@@ -25,5 +25,6 @@  INC := $(sort $(wildcard *.h))
 
 CFLAGS += $(WERROR_FLAGS) -O3
 CFLAGS += -I$(SRCDIR)/../shared
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/server_node_efd/server/init.c b/examples/server_node_efd/server/init.c
index af5a18e28..b4ff9dd57 100644
--- a/examples/server_node_efd/server/init.c
+++ b/examples/server_node_efd/server/init.c
@@ -149,6 +149,7 @@  init_port(uint16_t port_num)
 
 	rte_eth_promiscuous_enable(port_num);
 
+	rte_eth_dev_set_supported_ptypes(port_num, RTE_PTYPE_UNKNOWN);
 	retval = rte_eth_dev_start(port_num);
 	if (retval < 0)
 		return retval;
diff --git a/examples/skeleton/Makefile b/examples/skeleton/Makefile
index c5ac26029..0037d6b25 100644
--- a/examples/skeleton/Makefile
+++ b/examples/skeleton/Makefile
@@ -50,6 +50,7 @@  RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
 include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # workaround for a gcc bug with noreturn attribute
 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
diff --git a/examples/skeleton/basicfwd.c b/examples/skeleton/basicfwd.c
index a8a8e98f0..6c10a06ef 100644
--- a/examples/skeleton/basicfwd.c
+++ b/examples/skeleton/basicfwd.c
@@ -76,6 +76,7 @@  port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 			return retval;
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	/* Start the Ethernet port. */
 	retval = rte_eth_dev_start(port);
 	if (retval < 0)
diff --git a/examples/skeleton/meson.build b/examples/skeleton/meson.build
index 9bb9ec329..ef46b187e 100644
--- a/examples/skeleton/meson.build
+++ b/examples/skeleton/meson.build
@@ -6,6 +6,7 @@ 
 # To build this example as a standalone application with an already-installed
 # DPDK instance, use 'make'
 
+allow_experimental_apis = true
 sources = files(
 	'basicfwd.c'
 )
diff --git a/examples/tep_termination/Makefile b/examples/tep_termination/Makefile
index 31165bd92..586838676 100644
--- a/examples/tep_termination/Makefile
+++ b/examples/tep_termination/Makefile
@@ -61,6 +61,7 @@  endif
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -Wno-deprecated-declarations
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
 endif
diff --git a/examples/tep_termination/meson.build b/examples/tep_termination/meson.build
index f65d68980..f40b1c0b8 100644
--- a/examples/tep_termination/meson.build
+++ b/examples/tep_termination/meson.build
@@ -11,6 +11,7 @@  if not is_linux
 endif
 deps += ['hash', 'vhost']
 cflags += '-Wno-deprecated-declarations'
+allow_experimental_apis = true
 sources = files(
 	'main.c', 'vxlan.c', 'vxlan_setup.c'
 )
diff --git a/examples/tep_termination/vxlan_setup.c b/examples/tep_termination/vxlan_setup.c
index 9a0880002..538a54b3a 100644
--- a/examples/tep_termination/vxlan_setup.c
+++ b/examples/tep_termination/vxlan_setup.c
@@ -167,6 +167,7 @@  vxlan_port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 			return retval;
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	/* Start the device. */
 	retval  = rte_eth_dev_start(port);
 	if (retval < 0)
diff --git a/examples/vhost/Makefile b/examples/vhost/Makefile
index f84b7f017..7722e81c7 100644
--- a/examples/vhost/Makefile
+++ b/examples/vhost/Makefile
@@ -62,6 +62,7 @@  else
 CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O2 -D_FILE_OFFSET_BITS=64
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
 
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 0961db080..57438b22c 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -321,6 +321,7 @@  port_init(uint16_t port)
 		}
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	/* Start the device. */
 	retval  = rte_eth_dev_start(port);
 	if (retval < 0) {
diff --git a/examples/vm_power_manager/Makefile b/examples/vm_power_manager/Makefile
index 2fdb991d7..65c2ad179 100644
--- a/examples/vm_power_manager/Makefile
+++ b/examples/vm_power_manager/Makefile
@@ -28,6 +28,7 @@  endif
 
 CFLAGS += -O3 -I$(RTE_SDK)/lib/librte_power/
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lvirt
 
diff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c
index 54c704610..190a7a9ea 100644
--- a/examples/vm_power_manager/main.c
+++ b/examples/vm_power_manager/main.c
@@ -99,6 +99,7 @@  port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 			return retval;
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	/* Start the Ethernet port. */
 	retval = rte_eth_dev_start(port);
 	if (retval < 0)
diff --git a/examples/vm_power_manager/meson.build b/examples/vm_power_manager/meson.build
index 20a4a05b3..54e2b584f 100644
--- a/examples/vm_power_manager/meson.build
+++ b/examples/vm_power_manager/meson.build
@@ -25,6 +25,7 @@  if dpdk_conf.has('RTE_LIBRTE_IXGBE_PMD')
 	deps += ['pmd_ixgbe']
 endif
 
+allow_experimental_apis = true
 sources = files(
 	'channel_manager.c', 'channel_monitor.c', 'main.c', 'parse.c', 'power_manager.c', 'vm_power_cli.c'
 )
diff --git a/examples/vmdq/Makefile b/examples/vmdq/Makefile
index 1557ee86b..2168747cc 100644
--- a/examples/vmdq/Makefile
+++ b/examples/vmdq/Makefile
@@ -50,6 +50,7 @@  RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
 include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 EXTRA_CFLAGS += -O3
 
diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
index 7281ffd7f..87cf230f4 100644
--- a/examples/vmdq/main.c
+++ b/examples/vmdq/main.c
@@ -258,6 +258,7 @@  port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 		}
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	retval  = rte_eth_dev_start(port);
 	if (retval < 0) {
 		printf("port %d start failed\n", port);
diff --git a/examples/vmdq/meson.build b/examples/vmdq/meson.build
index c34e11e36..2b0a25036 100644
--- a/examples/vmdq/meson.build
+++ b/examples/vmdq/meson.build
@@ -6,6 +6,7 @@ 
 # To build this example as a standalone application with an already-installed
 # DPDK instance, use 'make'
 
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )
diff --git a/examples/vmdq_dcb/Makefile b/examples/vmdq_dcb/Makefile
index 391096cfb..ea1574d91 100644
--- a/examples/vmdq_dcb/Makefile
+++ b/examples/vmdq_dcb/Makefile
@@ -50,6 +50,7 @@  RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
 include $(RTE_SDK)/mk/rte.vars.mk
 
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # workaround for a gcc bug with noreturn attribute
 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
diff --git a/examples/vmdq_dcb/main.c b/examples/vmdq_dcb/main.c
index 389000327..bace88e47 100644
--- a/examples/vmdq_dcb/main.c
+++ b/examples/vmdq_dcb/main.c
@@ -313,6 +313,7 @@  port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 		}
 	}
 
+	rte_eth_dev_set_supported_ptypes(port, RTE_PTYPE_UNKNOWN);
 	retval  = rte_eth_dev_start(port);
 	if (retval < 0) {
 		printf("port %d start failed\n", port);
diff --git a/examples/vmdq_dcb/meson.build b/examples/vmdq_dcb/meson.build
index c34e11e36..2b0a25036 100644
--- a/examples/vmdq_dcb/meson.build
+++ b/examples/vmdq_dcb/meson.build
@@ -6,6 +6,7 @@ 
 # To build this example as a standalone application with an already-installed
 # DPDK instance, use 'make'
 
+allow_experimental_apis = true
 sources = files(
 	'main.c'
 )