Hi, Rahul Just another thought, please consider about it:
Add a new flow type like #define RTE_ETH_FLOW_IPV6_UDP_EX 17 +#define RTE_ETH_FLOW_RAW_PKT 18 Then add a new item in rte_eth_fdir_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_mac_vlan_flow mac_vlan_flow; struct rte_eth_tunnel_flow tunnel_flow; + uint8_t raw_pkt[80]; }; Then add mask item in rte_eth_fdir_input: struct rte_eth_fdir_input { uint16_t flow_type; union rte_eth_fdir_flow flow; + union rte_eth_fdir_flow flow_mask; /**< Flow fields to match, dependent on flow_type */ struct rte_eth_fdir_flow_ext flow_ext; /**< Additional fields to match */ }; Then the filter can be added just in a format of raw packet, it looks generic, and even other NIC can use this too. Thanks Jingjing > -----Original Message----- > From: Wu, Jingjing > Sent: Wednesday, January 13, 2016 9:17 PM > To: Rahul Lakkireddy > Cc: dev at dpdk.org; Felix Marti; Kumar A S; Nirranjan Kirubaharan > Subject: RE: [dpdk-dev] [RFC v2 1/2] ethdev: add packet filter flow and new > behavior switch to fdir >