Re: [PATCH 3/4] net/i40e: support tunnel filter to VF
From: Xing, Beilei <hidden>
Date: 2017-03-09 06:08:32
-----Original Message----- From: Yigit, Ferruh Sent: Wednesday, March 8, 2017 11:50 PM To: Xing, Beilei <redacted>; Wu, Jingjing <redacted> Cc: Zhang, Helin <redacted>; dev@dpdk.org; Iremonger, Bernard [off-list ref]; Liu, Yong [off-list ref] Subject: Re: [dpdk-dev] [PATCH 3/4] net/i40e: support tunnel filter to VF On 3/3/2017 9:31 AM, Beilei Xing wrote:quoted
This patch is to support tunnel filter to VF. Signed-off-by: Bernard Iremonger <redacted> Signed-off-by: Yong Liu <redacted> Signed-off-by: Beilei Xing <redacted> ---<...>quoted
+/** + * 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. */
quoted
+ struct ether_addr outer_mac; /**< Outer MAC address to match.*/quoted
+ 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. */ +}; +<...>