[dpdk-dev] [PATCH 3/4] net/i40e: support tunnel filter to VF

Xing, Beilei beilei.xing at intel.com
Thu Mar 9 07:08:29 CET 2017



> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Wednesday, March 8, 2017 11:50 PM
> To: Xing, Beilei <beilei.xing at intel.com>; Wu, Jingjing <jingjing.wu at intel.com>
> Cc: Zhang, Helin <helin.zhang at intel.com>; dev at dpdk.org; Iremonger,
> Bernard <bernard.iremonger at intel.com>; Liu, Yong <yong.liu at intel.com>
> Subject: Re: [dpdk-dev] [PATCH 3/4] net/i40e: support tunnel filter to VF
> 
> On 3/3/2017 9:31 AM, Beilei Xing wrote:
> > This patch is to support tunnel filter to VF.
> >
> > Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
> > Signed-off-by: Yong Liu <yong.liu at intel.com>
> > Signed-off-by: Beilei Xing <beilei.xing at intel.com>
> > ---
> 
> <...>
> 
> > +/**
> > + * Tunneling Packet filter configuration.
> > + */
> > +struct i40e_tunnel_filter_conf {
> 
> There is already "rte_eth_tunnel_filter_conf", why driver is creating its own
> version of structure instead of using / updating public one?

Marvin has an announcement for this change before, but it's rejected as consistent filter API is available. 
http://www.dpdk.org/dev/patchwork/patch/19772/

So we add this new feature in PMD:
+	uint8_t is_to_vf;       /**< 0 - to PF, 1 - to VF */
+	uint16_t vf_id;         /**< VF id for tunnel filter insertion. */


> 
> > +	struct ether_addr outer_mac;    /**< Outer MAC address to match.
> */
> > +	struct ether_addr inner_mac;    /**< Inner MAC address to match. */
> > +	uint16_t inner_vlan;            /**< Inner VLAN to match. */
> > +	uint32_t outer_vlan;            /**< Outer VLAN to match */
> > +	enum rte_tunnel_iptype ip_type; /**< IP address type. */
> > +	/**
> > +	 * Outer destination IP address to match if ETH_TUNNEL_FILTER_OIP
> > +	 * is set in filter_type, or inner destination IP address to match
> > +	 * if ETH_TUNNEL_FILTER_IIP is set in filter_type.
> > +	 */
> > +	union {
> > +		uint32_t ipv4_addr;     /**< IPv4 address in big endian. */
> > +		uint32_t ipv6_addr[4];  /**< IPv6 address in big endian. */
> > +	} ip_addr;
> > +	/** Flags from ETH_TUNNEL_FILTER_XX - see above. */
> > +	uint16_t filter_type;
> > +	enum rte_eth_tunnel_type tunnel_type; /**< Tunnel Type. */
> > +	uint32_t tenant_id;     /**< Tenant ID to match. VNI, GRE key... */
> > +	uint16_t queue_id;      /**< Queue assigned to if match. */
> > +	uint8_t is_to_vf;       /**< 0 - to PF, 1 - to VF */
> > +	uint16_t vf_id;         /**< VF id for tunnel filter insertion. */
> > +};
> > +
> 
> <...>


More information about the dev mailing list