Sure, This is an example of using connection tracking with testpmd: start set verbose 1 set conntrack com peer 1 is_orig 1 enable 1 live 1 sack 1 cack 0 last_dir 0 liberal 0 state 1 max_ack_win 7 r_lim 5 last_win 510 last_seq 2632987379 last_ack 2532480967 last_end 2632987379 last_index 0x8 set conntrack orig scale 7 fin 0 acked 1 unack_data 0 sent_end 2632987379 reply_end 2633016339 max_win 28960 max_ack 2632987379 set conntrack rply scale 7 fin 0 acked 1 unack_data 0 sent_end 2532480967 reply_end 2532546247 max_win 65280 max_ack 2532480967 flow indirect_action 0 create ingress action conntrack / end
flow create 0 group 3 ingress pattern eth / ipv4 / tcp / end actions indirect 0 / jump group 5 / end flow create 0 group 5 ingress pattern eth / ipv4 / tcp / conntrack is 1 / end actions queue index 5 / end before my changes, conntracking was missed in the flow items list i got from the parsing of testpmd for the second flow created. I just aligned the parsing of connection tracking to be the same as other items.(e.g ITEM_PORT_REPRESENTOR) Regards, Maayan Kashani > -----Original Message----- > From: Ferruh Yigit <ferruh.yi...@amd.com> > Sent: Wednesday, 12 June 2024 19:35 > To: Maayan Kashani <mkash...@nvidia.com>; dev@dpdk.org > Cc: Dariusz Sosnowski <dsosnow...@nvidia.com>; Raslan Darawsheh > <rasl...@nvidia.com>; sta...@dpdk.org; Ori Kam <or...@nvidia.com>; > Aman Singh <aman.deep.si...@intel.com>; Yuying Zhang > <yuying.zh...@intel.com>; Bing Zhao <bi...@nvidia.com> > Subject: Re: [PATCH] app/testpmd: fix parsing for connection tracking item > > External email: Use caution opening links or attachments > > > On 6/2/2024 11:23 AM, Maayan Kashani wrote: > > In command line translation there were missing fields for connection > > tracking item, as a result this item was not parsed and was missing > > from the items list received from test-pmd. > > > > Fixes: 4d07cbefe3ba ("app/testpmd: add commands for conntrack") > > Cc: sta...@dpdk.org > > Signed-off-by: Maayan Kashani <mkash...@nvidia.com> > > > > Hi Maayan, > > I can't really trace why .priv and 'parse_vc' is required, can you please help > understanding by providing more data? > > What was the old testpmd command and what was old behavior with that > command, why it was wrong? > What is the new behavior and why this update was needed, how new code > solved the issue? > > testpmd flow command is still somewhat cryptic to me, and without running > code and debugging it is very hard for me to detect the missing parts. > > > > --- > > app/test-pmd/cmdline_flow.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c > > index 60ee9337cf..1f9d5ebd05 100644 > > --- a/app/test-pmd/cmdline_flow.c > > +++ b/app/test-pmd/cmdline_flow.c > > @@ -5797,9 +5797,12 @@ static const struct token token_list[] = { > > [ITEM_CONNTRACK] = { > > .name = "conntrack", > > .help = "conntrack state", > > + .priv = PRIV_ITEM(CONNTRACK, > > + sizeof(struct > > + rte_flow_item_conntrack)), > > .next = NEXT(NEXT_ENTRY(ITEM_NEXT), > NEXT_ENTRY(COMMON_UNSIGNED), > > item_param), > > .args = ARGS(ARGS_ENTRY(struct rte_flow_item_conntrack, > > flags)), > > + .call = parse_vc, > > }, > > [ITEM_PORT_REPRESENTOR] = { > > .name = "port_representor",