ethdev: add IGMP key field to flow API
Add new rte_flow_item_igmp in order to match the Internet Group Management Protocol based on RFC 2236. Signed-off-by: Kiran Kumar K <kirankumark@marvell.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
parent
86e1974a42
commit
30f9f9f451
@ -1265,6 +1265,18 @@ Matches a network service header (RFC 8300).
|
||||
- Default ``mask`` matches mdtype, next_proto, spi, sindex.
|
||||
|
||||
|
||||
Item: ``IGMP``
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
Matches a Internet Group Management Protocol (RFC 2236).
|
||||
|
||||
- ``type``: IGMP message type (Query/Report).
|
||||
- ``max_resp_time``: max time allowed before sending report.
|
||||
- ``checksum``: checksum, 1s complement of whole IGMP message.
|
||||
- ``group_addr``: group address, for Query value will be 0.
|
||||
- Default ``mask`` matches group_addr.
|
||||
|
||||
|
||||
Actions
|
||||
~~~~~~~
|
||||
|
||||
|
@ -81,6 +81,7 @@ static const struct rte_flow_desc_data rte_flow_desc_item[] = {
|
||||
MK_FLOW_ITEM(PPPOE_PROTO_ID,
|
||||
sizeof(struct rte_flow_item_pppoe_proto_id)),
|
||||
MK_FLOW_ITEM(NSH, sizeof(struct rte_flow_item_nsh)),
|
||||
MK_FLOW_ITEM(IGMP, sizeof(struct rte_flow_item_igmp)),
|
||||
};
|
||||
|
||||
/** Generate flow_action[] entry. */
|
||||
|
@ -477,6 +477,13 @@ enum rte_flow_item_type {
|
||||
*
|
||||
*/
|
||||
RTE_FLOW_ITEM_TYPE_NSH,
|
||||
|
||||
/**
|
||||
* Matches Internet Group Management Protocol (IGMP).
|
||||
* See struct rte_flow_item_igmp.
|
||||
*
|
||||
*/
|
||||
RTE_FLOW_ITEM_TYPE_IGMP,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -1346,6 +1353,29 @@ static const struct rte_flow_item_nsh rte_flow_item_nsh_mask = {
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this structure may change without prior notice
|
||||
*
|
||||
* RTE_FLOW_ITEM_TYPE_IGMP
|
||||
*
|
||||
* Match Internet Group Management Protocol (IGMP), RFC 2236
|
||||
*
|
||||
*/
|
||||
struct rte_flow_item_igmp {
|
||||
uint32_t type:8;
|
||||
uint32_t max_resp_time:8;
|
||||
uint32_t checksum:16;
|
||||
uint32_t group_addr;
|
||||
};
|
||||
|
||||
/** Default mask for RTE_FLOW_ITEM_TYPE_IGMP. */
|
||||
#ifndef __cplusplus
|
||||
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask = {
|
||||
.group_addr = 0xffffffff,
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Matching pattern item definition.
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user