Hi Jeff and Ting, > -----Original Message----- > From: Jeff Guo <jia....@intel.com> > Sent: Tuesday, April 13, 2021 11:10 AM > Subject: [PATCH v4 1/4] app/testpmd: add packet id for IP fragment > > Add the new items to support the flow configuration for IP fragment > packets. > > Signed-off-by: Ting Xu <ting...@intel.com> > Signed-off-by: Jeff Guo <jia....@intel.com> > --- > app/test-pmd/cmdline_flow.c | 21 ++++++++++++++++++++- > 1 file changed, 20 insertions(+), 1 deletion(-) > > diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c > index fb7a3a8bd3..46ae342b85 100644 > --- a/app/test-pmd/cmdline_flow.c > +++ b/app/test-pmd/cmdline_flow.c > @@ -166,6 +166,7 @@ enum index { > ITEM_VLAN_HAS_MORE_VLAN, > ITEM_IPV4, > ITEM_IPV4_TOS, > + ITEM_IPV4_ID, > ITEM_IPV4_FRAGMENT_OFFSET, > ITEM_IPV4_TTL, > ITEM_IPV4_PROTO, > @@ -236,6 +237,7 @@ enum index { > ITEM_IPV6_FRAG_EXT, > ITEM_IPV6_FRAG_EXT_NEXT_HDR, > ITEM_IPV6_FRAG_EXT_FRAG_DATA, > + ITEM_IPV6_FRAG_EXT_ID, > ITEM_ICMP6, > ITEM_ICMP6_TYPE, > ITEM_ICMP6_CODE, > @@ -1028,6 +1030,7 @@ static const enum index item_vlan[] = { > > static const enum index item_ipv4[] = { > ITEM_IPV4_TOS, > + ITEM_IPV4_ID, > ITEM_IPV4_FRAGMENT_OFFSET, > ITEM_IPV4_TTL, > ITEM_IPV4_PROTO, > @@ -1164,6 +1167,7 @@ static const enum index item_ipv6_ext[] = { > static const enum index item_ipv6_frag_ext[] = { > ITEM_IPV6_FRAG_EXT_NEXT_HDR, > ITEM_IPV6_FRAG_EXT_FRAG_DATA, > + ITEM_IPV6_FRAG_EXT_ID, > ITEM_NEXT, > ZERO, > }; > @@ -2466,6 +2470,13 @@ static const struct token token_list[] = { > .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4, > hdr.type_of_service)), > }, > + [ITEM_IPV4_ID] = { > + .name = "packet_id", > + .help = "fragment packet id", > + .next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), > item_param), > + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4, > + hdr.packet_id)), > + }, > [ITEM_IPV4_FRAGMENT_OFFSET] = { > .name = "fragment_offset", > .help = "fragmentation flags and fragment offset", > @@ -2969,12 +2980,20 @@ static const struct token token_list[] = { > }, > [ITEM_IPV6_FRAG_EXT_FRAG_DATA] = { > .name = "frag_data", > - .help = "Fragment flags and offset", > + .help = "fragment flags and offset", > .next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(UNSIGNED), > item_param), > .args = ARGS(ARGS_ENTRY_HTON(struct > rte_flow_item_ipv6_frag_ext, > hdr.frag_data)), > }, > + [ITEM_IPV6_FRAG_EXT_ID] = { > + .name = "packet_id", > + .help = "fragment packet id", > + .next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(UNSIGNED), > + item_param), > + .args = ARGS(ARGS_ENTRY_HTON(struct > rte_flow_item_ipv6_frag_ext, > + hdr.id)), > + }, > [ITEM_ICMP6] = { > .name = "icmp6", > .help = "match any ICMPv6 header", > -- > 2.20.1
Acked-by: Ori Kam <or...@nvidia.com> Thanks, Ori