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:
Kiran Kumar K 2019-07-25 14:33:44 +05:30 committed by Ferruh Yigit
parent 86e1974a42
commit 30f9f9f451
3 changed files with 43 additions and 0 deletions

View File

@ -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
~~~~~~~

View File

@ -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. */

View File

@ -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.
*