X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-pmd%2Fcmdline_flow.c;h=a781545022d6356594a38a4d59ea67c20013fa79;hb=241a65006138f659f299290a5d1237827321db27;hp=680cb1c5658100c49f2e0771db282731947a13f5;hpb=573ef95dc7c9e4991da41fa1fc3d45c5c4076deb;p=dpdk.git diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 680cb1c565..a781545022 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -222,6 +222,9 @@ enum index { ITEM_ESP_SPI, ITEM_AH, ITEM_AH_SPI, + ITEM_PFCP, + ITEM_PFCP_S_FIELD, + ITEM_PFCP_SEID, /* Validate/create actions. */ ACTIONS, @@ -771,6 +774,7 @@ static const enum index next_item[] = { ITEM_L2TPV3OIP, ITEM_ESP, ITEM_AH, + ITEM_PFCP, END_SET, ZERO, }; @@ -1055,6 +1059,13 @@ static const enum index item_ah[] = { ZERO, }; +static const enum index item_pfcp[] = { + ITEM_PFCP_S_FIELD, + ITEM_PFCP_SEID, + ITEM_NEXT, + ZERO, +}; + static const enum index next_set_raw[] = { SET_RAW_INDEX, ITEM_ETH, @@ -2721,6 +2732,26 @@ static const struct token token_list[] = { .next = NEXT(item_ah, NEXT_ENTRY(UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ah, spi)), }, + [ITEM_PFCP] = { + .name = "pfcp", + .help = "match pfcp header", + .priv = PRIV_ITEM(PFCP, sizeof(struct rte_flow_item_pfcp)), + .next = NEXT(item_pfcp), + .call = parse_vc, + }, + [ITEM_PFCP_S_FIELD] = { + .name = "s_field", + .help = "S field", + .next = NEXT(item_pfcp, NEXT_ENTRY(UNSIGNED), item_param), + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_pfcp, + s_field)), + }, + [ITEM_PFCP_SEID] = { + .name = "seid", + .help = "session endpoint identifier", + .next = NEXT(item_pfcp, NEXT_ENTRY(UNSIGNED), item_param), + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_pfcp, seid)), + }, /* Validate/create actions. */ [ACTIONS] = { .name = "actions", @@ -6469,6 +6500,9 @@ flow_item_default_mask(const struct rte_flow_item *item) case RTE_FLOW_ITEM_TYPE_AH: mask = &rte_flow_item_ah_mask; break; + case RTE_FLOW_ITEM_TYPE_PFCP: + mask = &rte_flow_item_pfcp_mask; + break; default: break; } @@ -6570,6 +6604,9 @@ cmd_set_raw_parsed(const struct buffer *in) size = sizeof(struct rte_flow_item_ah); proto = 0x33; break; + case RTE_FLOW_ITEM_TYPE_PFCP: + size = sizeof(struct rte_flow_item_pfcp); + break; default: printf("Error - Not supported item\n"); *total_size = 0;