[dpdk-dev] [PATCH v4 07/12] librte_ether: extend flow director struct

Thomas Monjalon thomas.monjalon at 6wind.com
Sun Mar 20 11:38:06 CET 2016


2016-03-20 09:02, Wu, Jingjing:
> From: Wu, Jingjing
> > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > 2016-03-10 11:25, Jingjing Wu:
> > > > This patch changed rte_eth_fdir_flow from union to struct to
> > > > support more packets formats, for example, Vxlan and GRE tunnel
> > > > packets with IP inner frame.
> > >
> > > I think we need a lot more explanations about how it should work.
> > > From this point we should collect some acknowledgements from the
> > > maintainers of other drivers having this kind of flow steering need.
> > > Maybe that a better API, more generic, is possible.
> > >
> > > > This patch also add new RTE_FDIR_TUNNEL_TYPE_GRE enum.
> > >
> > > OK to add GRE to the existing API.
> > >
> > > > Signed-off-by: Jingjing Wu <jingjing.wu at intel.com>
> > > > Acked-by: Helin Zhang <helin.zhang at intel.com>
> > > [...]
> > > >  /**
> > > > - * An union contains the inputs for all types of flow
> > > > + * A struct contains the inputs for all types of flow
> > > >   */
> > > > -union rte_eth_fdir_flow {
> > > > -	struct rte_eth_l2_flow     l2_flow;
> > > > -	struct rte_eth_udpv4_flow  udp4_flow;
> > > > -	struct rte_eth_tcpv4_flow  tcp4_flow;
> > > > -	struct rte_eth_sctpv4_flow sctp4_flow;
> > > > -	struct rte_eth_ipv4_flow   ip4_flow;
> > > > -	struct rte_eth_udpv6_flow  udp6_flow;
> > > > -	struct rte_eth_tcpv6_flow  tcp6_flow;
> > > > -	struct rte_eth_sctpv6_flow sctp6_flow;
> > > > -	struct rte_eth_ipv6_flow   ipv6_flow;
> > > > +struct rte_eth_fdir_flow {
> > > > +	union {
> > > > +		struct rte_eth_l2_flow     l2_flow;
> > > > +		struct rte_eth_udpv4_flow  udp4_flow;
> > > > +		struct rte_eth_tcpv4_flow  tcp4_flow;
> > > > +		struct rte_eth_sctpv4_flow sctp4_flow;
> > > > +		struct rte_eth_ipv4_flow   ip4_flow;
> > > > +		struct rte_eth_udpv6_flow  udp6_flow;
> > > > +		struct rte_eth_tcpv6_flow  tcp6_flow;
> > > > +		struct rte_eth_sctpv6_flow sctp6_flow;
> > > > +		struct rte_eth_ipv6_flow   ipv6_flow;
> > > > +	};
> > > >  	struct rte_eth_mac_vlan_flow mac_vlan_flow;
> > > >  	struct rte_eth_tunnel_flow   tunnel_flow;
> > > >  };
> > >
> > > Please explain somewhere how to use this API change in order to have more
> > > discussions with other maintainers.
> > >
> > > I'm sorry to comment this change only now. I took time to realize that
> > > we need more consensus about the filtering API to make it usable by
> > > more drivers.
> > >
> > 
> > > For the 16.04 release, I suggest to remove this change from the series.
> > > Thanks for your understanding.
> > OK. Understand that we need to comments more on the change. And as you know, the
> > whole patch set actually contains two changes on filter API: One the change is in this patch,
> > which adds tunnel filtering using flow director, another one is the patch "[PATCH v4,05/12]
> > i40e: extend flow director to filter by IP "
> > (http://www.dpdk.org/dev/patchwork/patch/11358/ ). If you are OK to the latter one, I will
> > send another version which just contains the change and drops tunnel supporting in 16.04
> > release.
> Correct the mistake:
> The other change is "[v4,01/12] ethdev: extend flow director for input selection" http://www.dpdk.org/dev/patchwork/patch/11354/. 

I'm OK with patch 01 and "RTE_FDIR_TUNNEL_TYPE_GRE" add in patch 07.

> > And let's discuss more on the filtering API in future.

Thanks



More information about the dev mailing list