From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-f194.google.com (mail-oi1-f194.google.com [209.85.167.194]) by dpdk.org (Postfix) with ESMTP id 54A4F1BC29 for ; Thu, 18 Apr 2019 19:58:45 +0200 (CEST) Received: by mail-oi1-f194.google.com with SMTP id v10so2292831oib.1 for ; Thu, 18 Apr 2019 10:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=N+kMxq8T5AqCaqMmG31bsFDOO/+pDtTYg+4bzPrnu5M=; b=SKYSlzib3XpvwGRq+nNSZczoTRXAc0+Y6HVygr0q682OOwmyaiF8U4zP4AuHDiphY/ FjHG6HQt61NdbsCxCBJ3J+ThnmL9bRD2S3QmESlJI5RO21kv73zrTXwJ2xyXP9gX/MId qO2dbEPwJyaJfuILh9HoL+o+SOSf+cnlvyES0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=N+kMxq8T5AqCaqMmG31bsFDOO/+pDtTYg+4bzPrnu5M=; b=XI6U648NwjenVMZTbmpfDAufAq88Lt28qBMZi+tCKOvH1oGl6C6Qa/WfYYxLRvP9S3 UeI9CyRu3jwlg9QQFkR9Fo2ej6FC7fVU36Vr2a/UTTLzb+6tB5SVJhBFy0h4V/fulB7k LsomABxKbl7zx49v2wpBFstTTlYLXUnQE20D2424IPBk9BYZKJWytBt4PEFWRar2222Y dZcuwaNtJYOMyLnOg5kDwna7TENwf7jS8Ne8TNDtl3m9NJk3SHFt8RS6un7jSEf6Lk0+ CO3AJAyMOv62CnoPyq8qVQGQy54YIQKS61/uh2ngJ7GgNZEHqvaBnN1Hags9pvSxT+jI kZ5g== X-Gm-Message-State: APjAAAUKg/eovj1oJZlA6b2HCo5bPXPJtumjhDtK7LUQS6I2qwy5+YdJ fZ6JoFPP5hJJq17vwcCoERsTWG3mMbUNV+yBB7Udnw== X-Google-Smtp-Source: APXvYqwIO18MPs5HjLKef3fAUAlxDHqL6l/SwHm8sr0l/sZyhFpmWADVxF5sx12Q8mdRXIL7yZeHWtLLE6k5KmFDtaM= X-Received: by 2002:aca:61d6:: with SMTP id v205mr2746817oib.122.1555610324092; Thu, 18 Apr 2019 10:58:44 -0700 (PDT) MIME-Version: 1.0 References: <20190417003627.24607-1-thomas@monjalon.net> In-Reply-To: <20190417003627.24607-1-thomas@monjalon.net> From: Ajit Khaparde Date: Thu, 18 Apr 2019 10:58:26 -0700 Message-ID: To: Thomas Monjalon Cc: Wenzhuo Lu , Jingjing Wu , Bernard Iremonger , Adrien Mazarguil , Hemant Agrawal , Shreyansh Jain , John Daley , Hyong Youb Kim , Gaetan Rivet , Beilei Xing , Qi Zhang , Matan Azrad , Shahaf Shuler , Yongseok Koh , Andrew Rybchenko , John McNamara , Pablo de Lara , Bruce Richardson , Harry van Haaren , Xiaoyun Li , Ferruh Yigit , dev@dpdk.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH] ethdev: deprecate legacy filter API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Apr 2019 17:58:45 -0000 On Tue, Apr 16, 2019 at 5:37 PM Thomas Monjalon wrote: > As stated in the deprecation notice from December 2016, > "the legacy filter API, including rte_eth_dev_filter_supported(), > rte_eth_dev_filter_ctrl() as well as filter types MACVLAN, ETHERTYPE, > FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR, HASH and L2_TUNNEL, is superseded > by the generic flow API (rte_flow)". > > After a long wait of more than two years, the legacy filter API > is marked as deprecated, while still tested with testpmd and > the tep_termination example. > > The next step will be to announce a deadline for complete removal. > As preparation of the removal of rte_eth_ctrl.h, > RTE_ETH_FLOW_*, RTE_TUNNEL_TYPE_* and RTE_ETH_HASH_FUNCTION_* definitions > are moved to rte_ethdev.h and rte_flow.h. > > Signed-off-by: Thomas Monjalon > Acked-by: Ajit Khaparde > --- > app/test-pmd/cmdline.c | 1 - > app/test-pmd/cmdline_flow.c | 1 - > drivers/net/dpaa2/dpaa2_flow.c | 1 - > drivers/net/dpaa2/dpaa2_mux.c | 1 - > drivers/net/enic/enic_clsf.c | 1 - > drivers/net/failsafe/failsafe_ops.c | 20 +-------- > drivers/net/i40e/i40e_ethdev.c | 1 - > drivers/net/i40e/i40e_ethdev.h | 1 - > drivers/net/i40e/i40e_flow.c | 1 - > drivers/net/mlx4/mlx4_flow.c | 1 - > drivers/net/mlx4/mlx4_flow.h | 1 - > drivers/net/mlx5/mlx5_flow.c | 1 - > drivers/net/mlx5/mlx5_flow_dv.c | 1 - > drivers/net/mlx5/mlx5_flow_verbs.c | 1 - > drivers/net/sfc/sfc_flow.c | 1 - > examples/tep_termination/Makefile | 2 + > examples/tep_termination/meson.build | 1 + > lib/librte_ethdev/rte_eth_ctrl.h | 64 +--------------------------- > lib/librte_ethdev/rte_ethdev.h | 62 +++++++++++++++++++++++++-- > lib/librte_ethdev/rte_flow.h | 11 ++++- > 20 files changed, 75 insertions(+), 99 deletions(-) > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c > index 2ab03c111..3e405d262 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -44,7 +44,6 @@ > #include > #include > #include > -#include > #include > #include > > diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c > index 54ff1753c..3070e0e0d 100644 > --- a/app/test-pmd/cmdline_flow.c > +++ b/app/test-pmd/cmdline_flow.c > @@ -15,7 +15,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/dpaa2/dpaa2_flow.c > b/drivers/net/dpaa2/dpaa2_flow.c > index c94c7ef6b..98f68139b 100644 > --- a/drivers/net/dpaa2/dpaa2_flow.c > +++ b/drivers/net/dpaa2/dpaa2_flow.c > @@ -12,7 +12,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c > index 1d043dcdc..e487c6b54 100644 > --- a/drivers/net/dpaa2/dpaa2_mux.c > +++ b/drivers/net/dpaa2/dpaa2_mux.c > @@ -12,7 +12,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c > index 48c8e6264..53f57b01a 100644 > --- a/drivers/net/enic/enic_clsf.c > +++ b/drivers/net/enic/enic_clsf.c > @@ -11,7 +11,6 @@ > #include > #include > #include > -#include > > #include "enic_compat.h" > #include "enic.h" > diff --git a/drivers/net/failsafe/failsafe_ops.c > b/drivers/net/failsafe/failsafe_ops.c > index 65957a2e5..43d6a828f 100644 > --- a/drivers/net/failsafe/failsafe_ops.c > +++ b/drivers/net/failsafe/failsafe_ops.c > @@ -1208,33 +1208,17 @@ fs_rss_hash_update(struct rte_eth_dev *dev, > } > > static int > -fs_filter_ctrl(struct rte_eth_dev *dev, > +fs_filter_ctrl(struct rte_eth_dev *dev __rte_unused, > enum rte_filter_type type, > enum rte_filter_op op, > void *arg) > { > - struct sub_device *sdev; > - uint8_t i; > - int ret; > - > if (type == RTE_ETH_FILTER_GENERIC && > op == RTE_ETH_FILTER_GET) { > *(const void **)arg = &fs_flow_ops; > return 0; > } > - fs_lock(dev, 0); > - FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) { > - DEBUG("Calling rte_eth_dev_filter_ctrl on sub_device %d", > i); > - ret = rte_eth_dev_filter_ctrl(PORT_ID(sdev), type, op, > arg); > - if ((ret = fs_err(sdev, ret))) { > - ERROR("Operation rte_eth_dev_filter_ctrl failed > for sub_device %d" > - " with error %d", i, ret); > - fs_unlock(dev, 0); > - return ret; > - } > - } > - fs_unlock(dev, 0); > - return 0; > + return -ENOTSUP; > } > > const struct eth_dev_ops failsafe_ops = { > diff --git a/drivers/net/i40e/i40e_ethdev.c > b/drivers/net/i40e/i40e_ethdev.c > index 5b01dc1f0..f6fc0056c 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -24,7 +24,6 @@ > #include > #include > #include > -#include > #include > #include > > diff --git a/drivers/net/i40e/i40e_ethdev.h > b/drivers/net/i40e/i40e_ethdev.h > index 930eb9aba..98550380e 100644 > --- a/drivers/net/i40e/i40e_ethdev.h > +++ b/drivers/net/i40e/i40e_ethdev.h > @@ -7,7 +7,6 @@ > > #include > > -#include > #include > #include > #include > diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c > index 3694df255..5447e4ea5 100644 > --- a/drivers/net/i40e/i40e_flow.c > +++ b/drivers/net/i40e/i40e_flow.c > @@ -15,7 +15,6 @@ > #include > #include > #include > -#include > #include > #include > > diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c > index 038dc71d3..1dcdb31a0 100644 > --- a/drivers/net/mlx4/mlx4_flow.c > +++ b/drivers/net/mlx4/mlx4_flow.c > @@ -28,7 +28,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/mlx4/mlx4_flow.h b/drivers/net/mlx4/mlx4_flow.h > index 03a4bd05e..26465c66a 100644 > --- a/drivers/net/mlx4/mlx4_flow.h > +++ b/drivers/net/mlx4/mlx4_flow.h > @@ -18,7 +18,6 @@ > #pragma GCC diagnostic error "-Wpedantic" > #endif > > -#include > #include > #include > #include > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index 1c78a5f8e..63420fc3e 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -21,7 +21,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c > index ccb2f7593..04c969b73 100644 > --- a/drivers/net/mlx5/mlx5_flow_dv.c > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > @@ -19,7 +19,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c > b/drivers/net/mlx5/mlx5_flow_verbs.c > index 3956df1a7..dc074bfb3 100644 > --- a/drivers/net/mlx5/mlx5_flow_verbs.c > +++ b/drivers/net/mlx5/mlx5_flow_verbs.c > @@ -20,7 +20,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c > index cffcd9a4c..944296d7d 100644 > --- a/drivers/net/sfc/sfc_flow.c > +++ b/drivers/net/sfc/sfc_flow.c > @@ -11,7 +11,6 @@ > #include > #include > #include > -#include > #include > #include > #include > diff --git a/examples/tep_termination/Makefile > b/examples/tep_termination/Makefile > index 2da41922f..222679bc9 100644 > --- a/examples/tep_termination/Makefile > +++ b/examples/tep_termination/Makefile > @@ -26,6 +26,7 @@ LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk) > LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk) > > CFLAGS += -DALLOW_EXPERIMENTAL_API > +CFLAGS += -Wno-deprecated-declarations > > build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build > $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) > @@ -60,6 +61,7 @@ endif > CFLAGS += -DALLOW_EXPERIMENTAL_API > CFLAGS += -O3 > CFLAGS += $(WERROR_FLAGS) > +CFLAGS += -Wno-deprecated-declarations > > include $(RTE_SDK)/mk/rte.extapp.mk > endif > diff --git a/examples/tep_termination/meson.build > b/examples/tep_termination/meson.build > index 6d3636243..0e0cb44f0 100644 > --- a/examples/tep_termination/meson.build > +++ b/examples/tep_termination/meson.build > @@ -11,6 +11,7 @@ if host_machine.system() != 'linux' > endif > deps += ['hash', 'vhost'] > allow_experimental_apis = true > +cflags += '-Wno-deprecated-declarations' > sources = files( > 'main.c', 'vxlan.c', 'vxlan_setup.c' > ) > diff --git a/lib/librte_ethdev/rte_eth_ctrl.h > b/lib/librte_ethdev/rte_eth_ctrl.h > index b3416341b..9fb0657e5 100644 > --- a/lib/librte_ethdev/rte_eth_ctrl.h > +++ b/lib/librte_ethdev/rte_eth_ctrl.h > @@ -8,55 +8,20 @@ > #include > #include > #include "rte_ether.h" > +#include "rte_flow.h" > > /** > + * @deprecated Please use rte_flow API instead of this legacy one. > * @file > * > * Ethernet device features and related data structures used > * by control APIs should be defined in this file. > - * > */ > > #ifdef __cplusplus > extern "C" { > #endif > > -/* > - * A packet can be identified by hardware as different flow types. > Different > - * NIC hardwares may support different flow types. > - * Basically, the NIC hardware identifies the flow type as deep protocol > as > - * possible, and exclusively. For example, if a packet is identified as > - * 'RTE_ETH_FLOW_NONFRAG_IPV4_TCP', it will not be any of other flow > types, > - * though it is an actual IPV4 packet. > - * Note that the flow types are used to define RSS offload types in > - * rte_ethdev.h. > - */ > -#define RTE_ETH_FLOW_UNKNOWN 0 > -#define RTE_ETH_FLOW_RAW 1 > -#define RTE_ETH_FLOW_IPV4 2 > -#define RTE_ETH_FLOW_FRAG_IPV4 3 > -#define RTE_ETH_FLOW_NONFRAG_IPV4_TCP 4 > -#define RTE_ETH_FLOW_NONFRAG_IPV4_UDP 5 > -#define RTE_ETH_FLOW_NONFRAG_IPV4_SCTP 6 > -#define RTE_ETH_FLOW_NONFRAG_IPV4_OTHER 7 > -#define RTE_ETH_FLOW_IPV6 8 > -#define RTE_ETH_FLOW_FRAG_IPV6 9 > -#define RTE_ETH_FLOW_NONFRAG_IPV6_TCP 10 > -#define RTE_ETH_FLOW_NONFRAG_IPV6_UDP 11 > -#define RTE_ETH_FLOW_NONFRAG_IPV6_SCTP 12 > -#define RTE_ETH_FLOW_NONFRAG_IPV6_OTHER 13 > -#define RTE_ETH_FLOW_L2_PAYLOAD 14 > -#define RTE_ETH_FLOW_IPV6_EX 15 > -#define RTE_ETH_FLOW_IPV6_TCP_EX 16 > -#define RTE_ETH_FLOW_IPV6_UDP_EX 17 > -#define RTE_ETH_FLOW_PORT 18 > - /**< Consider device port number as a flow differentiator */ > -#define RTE_ETH_FLOW_VXLAN 19 /**< VXLAN protocol based flow > */ > -#define RTE_ETH_FLOW_GENEVE 20 /**< GENEVE protocol based > flow */ > -#define RTE_ETH_FLOW_NVGRE 21 /**< NVGRE protocol based flow > */ > -#define RTE_ETH_FLOW_VXLAN_GPE 22 /**< VXLAN-GPE protocol based > flow */ > -#define RTE_ETH_FLOW_MAX 23 > - > /** > * Feature filter types > */ > @@ -218,21 +183,6 @@ struct rte_eth_ntuple_filter { > uint16_t queue; /**< Queue assigned to when match*/ > }; > > -/** > - * Tunneled type. > - */ > -enum rte_eth_tunnel_type { > - RTE_TUNNEL_TYPE_NONE = 0, > - RTE_TUNNEL_TYPE_VXLAN, > - RTE_TUNNEL_TYPE_GENEVE, > - RTE_TUNNEL_TYPE_TEREDO, > - RTE_TUNNEL_TYPE_NVGRE, > - RTE_TUNNEL_TYPE_IP_IN_GRE, > - RTE_L2_TUNNEL_TYPE_E_TAG, > - RTE_TUNNEL_TYPE_VXLAN_GPE, > - RTE_TUNNEL_TYPE_MAX, > -}; > - > /** > * filter type of tunneling packet > */ > @@ -765,16 +715,6 @@ enum rte_eth_hash_filter_info_type { > RTE_ETH_HASH_FILTER_INFO_TYPE_MAX, > }; > > -/** > - * Hash function types. > - */ > -enum rte_eth_hash_function { > - RTE_ETH_HASH_FUNCTION_DEFAULT = 0, > - RTE_ETH_HASH_FUNCTION_TOEPLITZ, /**< Toeplitz */ > - RTE_ETH_HASH_FUNCTION_SIMPLE_XOR, /**< Simple XOR */ > - RTE_ETH_HASH_FUNCTION_MAX, > -}; > - > #define RTE_SYM_HASH_MASK_ARRAY_SIZE \ > (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT64_BIT)/UINT64_BIT) > /** > diff --git a/lib/librte_ethdev/rte_ethdev.h > b/lib/librte_ethdev/rte_ethdev.h > index 40a068fe8..ca3a990ae 100644 > --- a/lib/librte_ethdev/rte_ethdev.h > +++ b/lib/librte_ethdev/rte_ethdev.h > @@ -158,7 +158,6 @@ extern "C" { > #include > > #include "rte_ether.h" > -#include "rte_eth_ctrl.h" > #include "rte_dev_info.h" > > extern int rte_eth_dev_logtype; > @@ -448,8 +447,43 @@ struct rte_eth_rss_conf { > }; > > /* > - * The RSS offload types are defined based on flow types which are defined > - * in rte_eth_ctrl.h. Different NIC hardwares may support different RSS > offload > + * A packet can be identified by hardware as different flow types. > Different > + * NIC hardwares may support different flow types. > + * Basically, the NIC hardware identifies the flow type as deep protocol > as > + * possible, and exclusively. For example, if a packet is identified as > + * 'RTE_ETH_FLOW_NONFRAG_IPV4_TCP', it will not be any of other flow > types, > + * though it is an actual IPV4 packet. > + * Note that the flow types are used to define RSS offload types. > + */ > +#define RTE_ETH_FLOW_UNKNOWN 0 > +#define RTE_ETH_FLOW_RAW 1 > +#define RTE_ETH_FLOW_IPV4 2 > +#define RTE_ETH_FLOW_FRAG_IPV4 3 > +#define RTE_ETH_FLOW_NONFRAG_IPV4_TCP 4 > +#define RTE_ETH_FLOW_NONFRAG_IPV4_UDP 5 > +#define RTE_ETH_FLOW_NONFRAG_IPV4_SCTP 6 > +#define RTE_ETH_FLOW_NONFRAG_IPV4_OTHER 7 > +#define RTE_ETH_FLOW_IPV6 8 > +#define RTE_ETH_FLOW_FRAG_IPV6 9 > +#define RTE_ETH_FLOW_NONFRAG_IPV6_TCP 10 > +#define RTE_ETH_FLOW_NONFRAG_IPV6_UDP 11 > +#define RTE_ETH_FLOW_NONFRAG_IPV6_SCTP 12 > +#define RTE_ETH_FLOW_NONFRAG_IPV6_OTHER 13 > +#define RTE_ETH_FLOW_L2_PAYLOAD 14 > +#define RTE_ETH_FLOW_IPV6_EX 15 > +#define RTE_ETH_FLOW_IPV6_TCP_EX 16 > +#define RTE_ETH_FLOW_IPV6_UDP_EX 17 > +#define RTE_ETH_FLOW_PORT 18 > + /**< Consider device port number as a flow differentiator */ > +#define RTE_ETH_FLOW_VXLAN 19 /**< VXLAN protocol based flow > */ > +#define RTE_ETH_FLOW_GENEVE 20 /**< GENEVE protocol based > flow */ > +#define RTE_ETH_FLOW_NVGRE 21 /**< NVGRE protocol based flow > */ > +#define RTE_ETH_FLOW_VXLAN_GPE 22 /**< VXLAN-GPE protocol based > flow */ > +#define RTE_ETH_FLOW_MAX 23 > + > +/* > + * The RSS offload types are defined based on flow types. > + * Different NIC hardwares may support different RSS offload > * types. The supported flow types or RSS offload types can be queried by > * rte_eth_dev_info_get(). > */ > @@ -834,6 +868,24 @@ struct rte_eth_pfc_conf { > uint8_t priority; /**< VLAN User Priority. */ > }; > > +/** > + * Tunneled type. > + */ > +enum rte_eth_tunnel_type { > + RTE_TUNNEL_TYPE_NONE = 0, > + RTE_TUNNEL_TYPE_VXLAN, > + RTE_TUNNEL_TYPE_GENEVE, > + RTE_TUNNEL_TYPE_TEREDO, > + RTE_TUNNEL_TYPE_NVGRE, > + RTE_TUNNEL_TYPE_IP_IN_GRE, > + RTE_L2_TUNNEL_TYPE_E_TAG, > + RTE_TUNNEL_TYPE_VXLAN_GPE, > + RTE_TUNNEL_TYPE_MAX, > +}; > + > +/* Deprecated API file for rte_eth_dev_filter_* functions */ > +#include "rte_eth_ctrl.h" > + > /** > * Memory space that can be configured to store Flow Director filters > * in the board memory. > @@ -934,7 +986,7 @@ struct rte_eth_conf { > /** Currently,Priority Flow Control(PFC) are supported,if DCB with > PFC > is needed,and the variable must be set ETH_DCB_PFC_SUPPORT. */ > uint32_t dcb_capability_en; > - struct rte_fdir_conf fdir_conf; /**< FDIR configuration. */ > + struct rte_fdir_conf fdir_conf; /**< FDIR configuration. > DEPRECATED */ > struct rte_intr_conf intr_conf; /**< Interrupt mode configuration. > */ > }; > > @@ -3251,6 +3303,7 @@ rte_eth_dev_udp_tunnel_port_delete(uint16_t port_id, > * - (-ENODEV) if *port_id* invalid. > * - (-EIO) if device is removed. > */ > +__rte_deprecated > int rte_eth_dev_filter_supported(uint16_t port_id, > enum rte_filter_type filter_type); > > @@ -3273,6 +3326,7 @@ int rte_eth_dev_filter_supported(uint16_t port_id, > * - (-EIO) if device is removed. > * - others depends on the specific operations implementation. > */ > +__rte_deprecated > int rte_eth_dev_filter_ctrl(uint16_t port_id, enum rte_filter_type > filter_type, > enum rte_filter_op filter_op, void *arg); > > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h > index c0fe87924..63f84fca6 100644 > --- a/lib/librte_ethdev/rte_flow.h > +++ b/lib/librte_ethdev/rte_flow.h > @@ -20,7 +20,6 @@ > #include > #include > #include > -#include > #include > #include > #include > @@ -1738,6 +1737,16 @@ struct rte_flow_query_count { > uint64_t bytes; /**< Number of bytes through this rule [out]. */ > }; > > +/** > + * Hash function types. > + */ > +enum rte_eth_hash_function { > + RTE_ETH_HASH_FUNCTION_DEFAULT = 0, > + RTE_ETH_HASH_FUNCTION_TOEPLITZ, /**< Toeplitz */ > + RTE_ETH_HASH_FUNCTION_SIMPLE_XOR, /**< Simple XOR */ > + RTE_ETH_HASH_FUNCTION_MAX, > +}; > + > /** > * RTE_FLOW_ACTION_TYPE_RSS > * > -- > 2.21.0 > > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id DD1B0A00E6 for ; Thu, 18 Apr 2019 19:58:48 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 581641BC29; Thu, 18 Apr 2019 19:58:47 +0200 (CEST) Received: from mail-oi1-f194.google.com (mail-oi1-f194.google.com [209.85.167.194]) by dpdk.org (Postfix) with ESMTP id 54A4F1BC29 for ; Thu, 18 Apr 2019 19:58:45 +0200 (CEST) Received: by mail-oi1-f194.google.com with SMTP id v10so2292831oib.1 for ; Thu, 18 Apr 2019 10:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=N+kMxq8T5AqCaqMmG31bsFDOO/+pDtTYg+4bzPrnu5M=; b=SKYSlzib3XpvwGRq+nNSZczoTRXAc0+Y6HVygr0q682OOwmyaiF8U4zP4AuHDiphY/ FjHG6HQt61NdbsCxCBJ3J+ThnmL9bRD2S3QmESlJI5RO21kv73zrTXwJ2xyXP9gX/MId qO2dbEPwJyaJfuILh9HoL+o+SOSf+cnlvyES0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=N+kMxq8T5AqCaqMmG31bsFDOO/+pDtTYg+4bzPrnu5M=; b=XI6U648NwjenVMZTbmpfDAufAq88Lt28qBMZi+tCKOvH1oGl6C6Qa/WfYYxLRvP9S3 UeI9CyRu3jwlg9QQFkR9Fo2ej6FC7fVU36Vr2a/UTTLzb+6tB5SVJhBFy0h4V/fulB7k LsomABxKbl7zx49v2wpBFstTTlYLXUnQE20D2424IPBk9BYZKJWytBt4PEFWRar2222Y dZcuwaNtJYOMyLnOg5kDwna7TENwf7jS8Ne8TNDtl3m9NJk3SHFt8RS6un7jSEf6Lk0+ CO3AJAyMOv62CnoPyq8qVQGQy54YIQKS61/uh2ngJ7GgNZEHqvaBnN1Hags9pvSxT+jI kZ5g== X-Gm-Message-State: APjAAAUKg/eovj1oJZlA6b2HCo5bPXPJtumjhDtK7LUQS6I2qwy5+YdJ fZ6JoFPP5hJJq17vwcCoERsTWG3mMbUNV+yBB7Udnw== X-Google-Smtp-Source: APXvYqwIO18MPs5HjLKef3fAUAlxDHqL6l/SwHm8sr0l/sZyhFpmWADVxF5sx12Q8mdRXIL7yZeHWtLLE6k5KmFDtaM= X-Received: by 2002:aca:61d6:: with SMTP id v205mr2746817oib.122.1555610324092; Thu, 18 Apr 2019 10:58:44 -0700 (PDT) MIME-Version: 1.0 References: <20190417003627.24607-1-thomas@monjalon.net> In-Reply-To: <20190417003627.24607-1-thomas@monjalon.net> From: Ajit Khaparde Date: Thu, 18 Apr 2019 10:58:26 -0700 Message-ID: To: Thomas Monjalon Cc: Wenzhuo Lu , Jingjing Wu , Bernard Iremonger , Adrien Mazarguil , Hemant Agrawal , Shreyansh Jain , John Daley , Hyong Youb Kim , Gaetan Rivet , Beilei Xing , Qi Zhang , Matan Azrad , Shahaf Shuler , Yongseok Koh , Andrew Rybchenko , John McNamara , Pablo de Lara , Bruce Richardson , Harry van Haaren , Xiaoyun Li , Ferruh Yigit , dev@dpdk.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH] ethdev: deprecate legacy filter API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Message-ID: <20190418175826.vNDzWOYkI5cdq03SHIF9gSHMT8ooCdbHWMQiOcdU6eQ@z> On Tue, Apr 16, 2019 at 5:37 PM Thomas Monjalon wrote: > As stated in the deprecation notice from December 2016, > "the legacy filter API, including rte_eth_dev_filter_supported(), > rte_eth_dev_filter_ctrl() as well as filter types MACVLAN, ETHERTYPE, > FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR, HASH and L2_TUNNEL, is superseded > by the generic flow API (rte_flow)". > > After a long wait of more than two years, the legacy filter API > is marked as deprecated, while still tested with testpmd and > the tep_termination example. > > The next step will be to announce a deadline for complete removal. > As preparation of the removal of rte_eth_ctrl.h, > RTE_ETH_FLOW_*, RTE_TUNNEL_TYPE_* and RTE_ETH_HASH_FUNCTION_* definitions > are moved to rte_ethdev.h and rte_flow.h. > > Signed-off-by: Thomas Monjalon > Acked-by: Ajit Khaparde > --- > app/test-pmd/cmdline.c | 1 - > app/test-pmd/cmdline_flow.c | 1 - > drivers/net/dpaa2/dpaa2_flow.c | 1 - > drivers/net/dpaa2/dpaa2_mux.c | 1 - > drivers/net/enic/enic_clsf.c | 1 - > drivers/net/failsafe/failsafe_ops.c | 20 +-------- > drivers/net/i40e/i40e_ethdev.c | 1 - > drivers/net/i40e/i40e_ethdev.h | 1 - > drivers/net/i40e/i40e_flow.c | 1 - > drivers/net/mlx4/mlx4_flow.c | 1 - > drivers/net/mlx4/mlx4_flow.h | 1 - > drivers/net/mlx5/mlx5_flow.c | 1 - > drivers/net/mlx5/mlx5_flow_dv.c | 1 - > drivers/net/mlx5/mlx5_flow_verbs.c | 1 - > drivers/net/sfc/sfc_flow.c | 1 - > examples/tep_termination/Makefile | 2 + > examples/tep_termination/meson.build | 1 + > lib/librte_ethdev/rte_eth_ctrl.h | 64 +--------------------------- > lib/librte_ethdev/rte_ethdev.h | 62 +++++++++++++++++++++++++-- > lib/librte_ethdev/rte_flow.h | 11 ++++- > 20 files changed, 75 insertions(+), 99 deletions(-) > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c > index 2ab03c111..3e405d262 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -44,7 +44,6 @@ > #include > #include > #include > -#include > #include > #include > > diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c > index 54ff1753c..3070e0e0d 100644 > --- a/app/test-pmd/cmdline_flow.c > +++ b/app/test-pmd/cmdline_flow.c > @@ -15,7 +15,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/dpaa2/dpaa2_flow.c > b/drivers/net/dpaa2/dpaa2_flow.c > index c94c7ef6b..98f68139b 100644 > --- a/drivers/net/dpaa2/dpaa2_flow.c > +++ b/drivers/net/dpaa2/dpaa2_flow.c > @@ -12,7 +12,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c > index 1d043dcdc..e487c6b54 100644 > --- a/drivers/net/dpaa2/dpaa2_mux.c > +++ b/drivers/net/dpaa2/dpaa2_mux.c > @@ -12,7 +12,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c > index 48c8e6264..53f57b01a 100644 > --- a/drivers/net/enic/enic_clsf.c > +++ b/drivers/net/enic/enic_clsf.c > @@ -11,7 +11,6 @@ > #include > #include > #include > -#include > > #include "enic_compat.h" > #include "enic.h" > diff --git a/drivers/net/failsafe/failsafe_ops.c > b/drivers/net/failsafe/failsafe_ops.c > index 65957a2e5..43d6a828f 100644 > --- a/drivers/net/failsafe/failsafe_ops.c > +++ b/drivers/net/failsafe/failsafe_ops.c > @@ -1208,33 +1208,17 @@ fs_rss_hash_update(struct rte_eth_dev *dev, > } > > static int > -fs_filter_ctrl(struct rte_eth_dev *dev, > +fs_filter_ctrl(struct rte_eth_dev *dev __rte_unused, > enum rte_filter_type type, > enum rte_filter_op op, > void *arg) > { > - struct sub_device *sdev; > - uint8_t i; > - int ret; > - > if (type == RTE_ETH_FILTER_GENERIC && > op == RTE_ETH_FILTER_GET) { > *(const void **)arg = &fs_flow_ops; > return 0; > } > - fs_lock(dev, 0); > - FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) { > - DEBUG("Calling rte_eth_dev_filter_ctrl on sub_device %d", > i); > - ret = rte_eth_dev_filter_ctrl(PORT_ID(sdev), type, op, > arg); > - if ((ret = fs_err(sdev, ret))) { > - ERROR("Operation rte_eth_dev_filter_ctrl failed > for sub_device %d" > - " with error %d", i, ret); > - fs_unlock(dev, 0); > - return ret; > - } > - } > - fs_unlock(dev, 0); > - return 0; > + return -ENOTSUP; > } > > const struct eth_dev_ops failsafe_ops = { > diff --git a/drivers/net/i40e/i40e_ethdev.c > b/drivers/net/i40e/i40e_ethdev.c > index 5b01dc1f0..f6fc0056c 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -24,7 +24,6 @@ > #include > #include > #include > -#include > #include > #include > > diff --git a/drivers/net/i40e/i40e_ethdev.h > b/drivers/net/i40e/i40e_ethdev.h > index 930eb9aba..98550380e 100644 > --- a/drivers/net/i40e/i40e_ethdev.h > +++ b/drivers/net/i40e/i40e_ethdev.h > @@ -7,7 +7,6 @@ > > #include > > -#include > #include > #include > #include > diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c > index 3694df255..5447e4ea5 100644 > --- a/drivers/net/i40e/i40e_flow.c > +++ b/drivers/net/i40e/i40e_flow.c > @@ -15,7 +15,6 @@ > #include > #include > #include > -#include > #include > #include > > diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c > index 038dc71d3..1dcdb31a0 100644 > --- a/drivers/net/mlx4/mlx4_flow.c > +++ b/drivers/net/mlx4/mlx4_flow.c > @@ -28,7 +28,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/mlx4/mlx4_flow.h b/drivers/net/mlx4/mlx4_flow.h > index 03a4bd05e..26465c66a 100644 > --- a/drivers/net/mlx4/mlx4_flow.h > +++ b/drivers/net/mlx4/mlx4_flow.h > @@ -18,7 +18,6 @@ > #pragma GCC diagnostic error "-Wpedantic" > #endif > > -#include > #include > #include > #include > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index 1c78a5f8e..63420fc3e 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -21,7 +21,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c > index ccb2f7593..04c969b73 100644 > --- a/drivers/net/mlx5/mlx5_flow_dv.c > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > @@ -19,7 +19,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c > b/drivers/net/mlx5/mlx5_flow_verbs.c > index 3956df1a7..dc074bfb3 100644 > --- a/drivers/net/mlx5/mlx5_flow_verbs.c > +++ b/drivers/net/mlx5/mlx5_flow_verbs.c > @@ -20,7 +20,6 @@ > > #include > #include > -#include > #include > #include > #include > diff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c > index cffcd9a4c..944296d7d 100644 > --- a/drivers/net/sfc/sfc_flow.c > +++ b/drivers/net/sfc/sfc_flow.c > @@ -11,7 +11,6 @@ > #include > #include > #include > -#include > #include > #include > #include > diff --git a/examples/tep_termination/Makefile > b/examples/tep_termination/Makefile > index 2da41922f..222679bc9 100644 > --- a/examples/tep_termination/Makefile > +++ b/examples/tep_termination/Makefile > @@ -26,6 +26,7 @@ LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk) > LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk) > > CFLAGS += -DALLOW_EXPERIMENTAL_API > +CFLAGS += -Wno-deprecated-declarations > > build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build > $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) > @@ -60,6 +61,7 @@ endif > CFLAGS += -DALLOW_EXPERIMENTAL_API > CFLAGS += -O3 > CFLAGS += $(WERROR_FLAGS) > +CFLAGS += -Wno-deprecated-declarations > > include $(RTE_SDK)/mk/rte.extapp.mk > endif > diff --git a/examples/tep_termination/meson.build > b/examples/tep_termination/meson.build > index 6d3636243..0e0cb44f0 100644 > --- a/examples/tep_termination/meson.build > +++ b/examples/tep_termination/meson.build > @@ -11,6 +11,7 @@ if host_machine.system() != 'linux' > endif > deps += ['hash', 'vhost'] > allow_experimental_apis = true > +cflags += '-Wno-deprecated-declarations' > sources = files( > 'main.c', 'vxlan.c', 'vxlan_setup.c' > ) > diff --git a/lib/librte_ethdev/rte_eth_ctrl.h > b/lib/librte_ethdev/rte_eth_ctrl.h > index b3416341b..9fb0657e5 100644 > --- a/lib/librte_ethdev/rte_eth_ctrl.h > +++ b/lib/librte_ethdev/rte_eth_ctrl.h > @@ -8,55 +8,20 @@ > #include > #include > #include "rte_ether.h" > +#include "rte_flow.h" > > /** > + * @deprecated Please use rte_flow API instead of this legacy one. > * @file > * > * Ethernet device features and related data structures used > * by control APIs should be defined in this file. > - * > */ > > #ifdef __cplusplus > extern "C" { > #endif > > -/* > - * A packet can be identified by hardware as different flow types. > Different > - * NIC hardwares may support different flow types. > - * Basically, the NIC hardware identifies the flow type as deep protocol > as > - * possible, and exclusively. For example, if a packet is identified as > - * 'RTE_ETH_FLOW_NONFRAG_IPV4_TCP', it will not be any of other flow > types, > - * though it is an actual IPV4 packet. > - * Note that the flow types are used to define RSS offload types in > - * rte_ethdev.h. > - */ > -#define RTE_ETH_FLOW_UNKNOWN 0 > -#define RTE_ETH_FLOW_RAW 1 > -#define RTE_ETH_FLOW_IPV4 2 > -#define RTE_ETH_FLOW_FRAG_IPV4 3 > -#define RTE_ETH_FLOW_NONFRAG_IPV4_TCP 4 > -#define RTE_ETH_FLOW_NONFRAG_IPV4_UDP 5 > -#define RTE_ETH_FLOW_NONFRAG_IPV4_SCTP 6 > -#define RTE_ETH_FLOW_NONFRAG_IPV4_OTHER 7 > -#define RTE_ETH_FLOW_IPV6 8 > -#define RTE_ETH_FLOW_FRAG_IPV6 9 > -#define RTE_ETH_FLOW_NONFRAG_IPV6_TCP 10 > -#define RTE_ETH_FLOW_NONFRAG_IPV6_UDP 11 > -#define RTE_ETH_FLOW_NONFRAG_IPV6_SCTP 12 > -#define RTE_ETH_FLOW_NONFRAG_IPV6_OTHER 13 > -#define RTE_ETH_FLOW_L2_PAYLOAD 14 > -#define RTE_ETH_FLOW_IPV6_EX 15 > -#define RTE_ETH_FLOW_IPV6_TCP_EX 16 > -#define RTE_ETH_FLOW_IPV6_UDP_EX 17 > -#define RTE_ETH_FLOW_PORT 18 > - /**< Consider device port number as a flow differentiator */ > -#define RTE_ETH_FLOW_VXLAN 19 /**< VXLAN protocol based flow > */ > -#define RTE_ETH_FLOW_GENEVE 20 /**< GENEVE protocol based > flow */ > -#define RTE_ETH_FLOW_NVGRE 21 /**< NVGRE protocol based flow > */ > -#define RTE_ETH_FLOW_VXLAN_GPE 22 /**< VXLAN-GPE protocol based > flow */ > -#define RTE_ETH_FLOW_MAX 23 > - > /** > * Feature filter types > */ > @@ -218,21 +183,6 @@ struct rte_eth_ntuple_filter { > uint16_t queue; /**< Queue assigned to when match*/ > }; > > -/** > - * Tunneled type. > - */ > -enum rte_eth_tunnel_type { > - RTE_TUNNEL_TYPE_NONE = 0, > - RTE_TUNNEL_TYPE_VXLAN, > - RTE_TUNNEL_TYPE_GENEVE, > - RTE_TUNNEL_TYPE_TEREDO, > - RTE_TUNNEL_TYPE_NVGRE, > - RTE_TUNNEL_TYPE_IP_IN_GRE, > - RTE_L2_TUNNEL_TYPE_E_TAG, > - RTE_TUNNEL_TYPE_VXLAN_GPE, > - RTE_TUNNEL_TYPE_MAX, > -}; > - > /** > * filter type of tunneling packet > */ > @@ -765,16 +715,6 @@ enum rte_eth_hash_filter_info_type { > RTE_ETH_HASH_FILTER_INFO_TYPE_MAX, > }; > > -/** > - * Hash function types. > - */ > -enum rte_eth_hash_function { > - RTE_ETH_HASH_FUNCTION_DEFAULT = 0, > - RTE_ETH_HASH_FUNCTION_TOEPLITZ, /**< Toeplitz */ > - RTE_ETH_HASH_FUNCTION_SIMPLE_XOR, /**< Simple XOR */ > - RTE_ETH_HASH_FUNCTION_MAX, > -}; > - > #define RTE_SYM_HASH_MASK_ARRAY_SIZE \ > (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT64_BIT)/UINT64_BIT) > /** > diff --git a/lib/librte_ethdev/rte_ethdev.h > b/lib/librte_ethdev/rte_ethdev.h > index 40a068fe8..ca3a990ae 100644 > --- a/lib/librte_ethdev/rte_ethdev.h > +++ b/lib/librte_ethdev/rte_ethdev.h > @@ -158,7 +158,6 @@ extern "C" { > #include > > #include "rte_ether.h" > -#include "rte_eth_ctrl.h" > #include "rte_dev_info.h" > > extern int rte_eth_dev_logtype; > @@ -448,8 +447,43 @@ struct rte_eth_rss_conf { > }; > > /* > - * The RSS offload types are defined based on flow types which are defined > - * in rte_eth_ctrl.h. Different NIC hardwares may support different RSS > offload > + * A packet can be identified by hardware as different flow types. > Different > + * NIC hardwares may support different flow types. > + * Basically, the NIC hardware identifies the flow type as deep protocol > as > + * possible, and exclusively. For example, if a packet is identified as > + * 'RTE_ETH_FLOW_NONFRAG_IPV4_TCP', it will not be any of other flow > types, > + * though it is an actual IPV4 packet. > + * Note that the flow types are used to define RSS offload types. > + */ > +#define RTE_ETH_FLOW_UNKNOWN 0 > +#define RTE_ETH_FLOW_RAW 1 > +#define RTE_ETH_FLOW_IPV4 2 > +#define RTE_ETH_FLOW_FRAG_IPV4 3 > +#define RTE_ETH_FLOW_NONFRAG_IPV4_TCP 4 > +#define RTE_ETH_FLOW_NONFRAG_IPV4_UDP 5 > +#define RTE_ETH_FLOW_NONFRAG_IPV4_SCTP 6 > +#define RTE_ETH_FLOW_NONFRAG_IPV4_OTHER 7 > +#define RTE_ETH_FLOW_IPV6 8 > +#define RTE_ETH_FLOW_FRAG_IPV6 9 > +#define RTE_ETH_FLOW_NONFRAG_IPV6_TCP 10 > +#define RTE_ETH_FLOW_NONFRAG_IPV6_UDP 11 > +#define RTE_ETH_FLOW_NONFRAG_IPV6_SCTP 12 > +#define RTE_ETH_FLOW_NONFRAG_IPV6_OTHER 13 > +#define RTE_ETH_FLOW_L2_PAYLOAD 14 > +#define RTE_ETH_FLOW_IPV6_EX 15 > +#define RTE_ETH_FLOW_IPV6_TCP_EX 16 > +#define RTE_ETH_FLOW_IPV6_UDP_EX 17 > +#define RTE_ETH_FLOW_PORT 18 > + /**< Consider device port number as a flow differentiator */ > +#define RTE_ETH_FLOW_VXLAN 19 /**< VXLAN protocol based flow > */ > +#define RTE_ETH_FLOW_GENEVE 20 /**< GENEVE protocol based > flow */ > +#define RTE_ETH_FLOW_NVGRE 21 /**< NVGRE protocol based flow > */ > +#define RTE_ETH_FLOW_VXLAN_GPE 22 /**< VXLAN-GPE protocol based > flow */ > +#define RTE_ETH_FLOW_MAX 23 > + > +/* > + * The RSS offload types are defined based on flow types. > + * Different NIC hardwares may support different RSS offload > * types. The supported flow types or RSS offload types can be queried by > * rte_eth_dev_info_get(). > */ > @@ -834,6 +868,24 @@ struct rte_eth_pfc_conf { > uint8_t priority; /**< VLAN User Priority. */ > }; > > +/** > + * Tunneled type. > + */ > +enum rte_eth_tunnel_type { > + RTE_TUNNEL_TYPE_NONE = 0, > + RTE_TUNNEL_TYPE_VXLAN, > + RTE_TUNNEL_TYPE_GENEVE, > + RTE_TUNNEL_TYPE_TEREDO, > + RTE_TUNNEL_TYPE_NVGRE, > + RTE_TUNNEL_TYPE_IP_IN_GRE, > + RTE_L2_TUNNEL_TYPE_E_TAG, > + RTE_TUNNEL_TYPE_VXLAN_GPE, > + RTE_TUNNEL_TYPE_MAX, > +}; > + > +/* Deprecated API file for rte_eth_dev_filter_* functions */ > +#include "rte_eth_ctrl.h" > + > /** > * Memory space that can be configured to store Flow Director filters > * in the board memory. > @@ -934,7 +986,7 @@ struct rte_eth_conf { > /** Currently,Priority Flow Control(PFC) are supported,if DCB with > PFC > is needed,and the variable must be set ETH_DCB_PFC_SUPPORT. */ > uint32_t dcb_capability_en; > - struct rte_fdir_conf fdir_conf; /**< FDIR configuration. */ > + struct rte_fdir_conf fdir_conf; /**< FDIR configuration. > DEPRECATED */ > struct rte_intr_conf intr_conf; /**< Interrupt mode configuration. > */ > }; > > @@ -3251,6 +3303,7 @@ rte_eth_dev_udp_tunnel_port_delete(uint16_t port_id, > * - (-ENODEV) if *port_id* invalid. > * - (-EIO) if device is removed. > */ > +__rte_deprecated > int rte_eth_dev_filter_supported(uint16_t port_id, > enum rte_filter_type filter_type); > > @@ -3273,6 +3326,7 @@ int rte_eth_dev_filter_supported(uint16_t port_id, > * - (-EIO) if device is removed. > * - others depends on the specific operations implementation. > */ > +__rte_deprecated > int rte_eth_dev_filter_ctrl(uint16_t port_id, enum rte_filter_type > filter_type, > enum rte_filter_op filter_op, void *arg); > > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h > index c0fe87924..63f84fca6 100644 > --- a/lib/librte_ethdev/rte_flow.h > +++ b/lib/librte_ethdev/rte_flow.h > @@ -20,7 +20,6 @@ > #include > #include > #include > -#include > #include > #include > #include > @@ -1738,6 +1737,16 @@ struct rte_flow_query_count { > uint64_t bytes; /**< Number of bytes through this rule [out]. */ > }; > > +/** > + * Hash function types. > + */ > +enum rte_eth_hash_function { > + RTE_ETH_HASH_FUNCTION_DEFAULT = 0, > + RTE_ETH_HASH_FUNCTION_TOEPLITZ, /**< Toeplitz */ > + RTE_ETH_HASH_FUNCTION_SIMPLE_XOR, /**< Simple XOR */ > + RTE_ETH_HASH_FUNCTION_MAX, > +}; > + > /** > * RTE_FLOW_ACTION_TYPE_RSS > * > -- > 2.21.0 > >