On 11/13/2014 8:51 PM, Jingjing Wu wrote: > From: "jingjing.wu" <jingjing.wu at intel.com> > > A new structure of ethertype filter is defined in rte_eth_ctrl.h > for filter_ctrl api > > Signed-off-by: jingjing.wu <jingjing.wu at intel.com> > --- > lib/librte_ether/rte_eth_ctrl.h | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/lib/librte_ether/rte_eth_ctrl.h b/lib/librte_ether/rte_eth_ctrl.h > index 8dd384d..73bc296 100644 > --- a/lib/librte_ether/rte_eth_ctrl.h > +++ b/lib/librte_ether/rte_eth_ctrl.h > @@ -53,6 +53,7 @@ enum rte_filter_type { > RTE_ETH_FILTER_NONE = 0, > RTE_ETH_FILTER_MACVLAN, > RTE_ETH_FILTER_TUNNEL, > + RTE_ETH_FILTER_ETHERTYPE, > RTE_ETH_FILTER_MAX > }; > > @@ -155,6 +156,25 @@ struct rte_eth_tunnel_filter_conf { > uint16_t queue_id; /** < queue number. */ > }; > > +/** > + * Define all structures for Ethertype Filter type. > + */ > + > +#define RTE_ETHTYPE_FLAGS_MAC 0x0001 /**< If set, compare mac */ > +#define RTE_ETHTYPE_FLAGS_DROP 0x0002 /**< If set, drop packet when match > */ > + > +/** > + * A structure used to define the ethertype filter entry > + * to support RTE_ETH_FILTER_ETHERTYPE with RTE_ETH_FILTER_ADD, > + * RTE_ETH_FILTER_DELETE and RTE_ETH_FILTER_GET operations. > + */ > +struct rte_eth_ethertype_filter { > + struct ether_addr mac_addr; /**< Mac address to match. */ > + uint16_t ether_type; /**< Ether type to match */ > + uint16_t flags; /**< Flags from RTE_ETHTYPE_FLAGS_* */ > + uint16_t queue; /**< Queue assigned to when match*/
Here 'match*/' should be 'match */', ignore this if it is just my email client's display issue :) Thanks, Michael > +}; > + > #ifdef __cplusplus > } > #endif