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

Wu, Jingjing jingjing.wu at intel.com
Sun Mar 20 09:56:54 CET 2016


Hi, Thomas


> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> Sent: Friday, March 18, 2016 7:44 PM
> To: Wu, Jingjing <jingjing.wu at intel.com>
> Cc: dev at dpdk.org; Richardson, Bruce <bruce.richardson at intel.com>
> Subject: Re: [dpdk-dev] [PATCH v4 07/12] librte_ether: extend flow director struct
> 
> Hi Jingjing,
> 
> 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.
And let's discuss more on the filtering API in future.

Thanks
Jingjing


More information about the dev mailing list