2014-10-22 16:19, Jingjing Wu: > +/** > + * Define all structures for Control Packet Filter type corresponding with > specific operations. > + */
Please explain what is a control packet. > + > +#define RTE_CONTROL_PACKET_FLAGS_IGNORE_MAC 0x0001 > +#define RTE_CONTROL_PACKET_FLAGS_DROP 0x0002 > +#define RTE_CONTROL_PACKET_FLAGS_TO_QUEUE 0x0004 > +#define RTE_CONTROL_PACKET_FLAGS_TX 0x0008 > +#define RTE_CONTROL_PACKET_FLAGS_RX 0x0000 Flag RX is 0? > +/** > + * A structure used to define the control packet filter entry > + * to support RTE_ETH_FILTER_CTRL_PKT with RTE_ETH_FILTER_ADD > + * and RTE_ETH_FILTER_DELETE operations. > + */ > +struct rte_ctrl_pkt_filter { > + struct ether_addr mac_addr; /**< mac address to match. */ > + uint16_t ether_type; /**< ether type to match */ > + uint16_t flags; /**< options for filter's behavior*/ > + uint16_t dest_id; /**< destination vsi id or pool id*/ vsi id and pool id cannot be understood in a generic context. Please explain what you mean and why queue is not enough. > + uint16_t queue; /**< queue assign to if TO QUEUE flag is > set */ TO QUEUE is not defined. Is it really needed? Thanks -- Thomas