> -----Original Message----- > From: Yigit, Ferruh > Sent: Wednesday, March 8, 2017 11:50 PM > To: Xing, Beilei <beilei.x...@intel.com>; Wu, Jingjing <jingjing...@intel.com> > Cc: Zhang, Helin <helin.zh...@intel.com>; dev@dpdk.org; Iremonger, > Bernard <bernard.iremon...@intel.com>; Liu, Yong <yong....@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.iremon...@intel.com> > > Signed-off-by: Yong Liu <yong....@intel.com> > > Signed-off-by: Beilei Xing <beilei.x...@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. */ > > +}; > > + > > <...>