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

Ferruh Yigit ferruh.yigit at intel.com
Mon Mar 27 18:34:24 CEST 2017


On 3/9/2017 6:08 AM, Xing, Beilei wrote:
> 
> 
>> -----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. */

Cc'ed Jerin and Thomas, which seems commented to Marvin's patch.

Jerin, Thomas,

Can you please comment if it is OK to localize the component and modify
it in the PMD comparing the previous updating ethdev approach?

Thanks,
ferruh


> 
> 
>>
>>> +	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