Hi, Ophir Munk Peng yuan has find this problem with patch , if you use the following test step, You will find the problem. She is using i40e nic.
./x86_64-native-linuxapp-gcc/app/testpmd -c 1ffff -n 4 - -i --nb-cores=8 --rxq=4 --txq=4 --port-topology=chained ............... testpmd> start testpmd> flow create 0 ingress pattern end actions rss types ipv4-udp end key 67108863 / end Segmentation fault (core dumped) > -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Ophir Munk > Sent: Saturday, November 3, 2018 11:55 PM > To: Lu, Wenzhuo <wenzhuo...@intel.com>; Wu, Jingjing > <jingjing...@intel.com>; Iremonger, Bernard > <bernard.iremon...@intel.com>; dev@dpdk.org > Cc: Asaf Penso <as...@mellanox.com>; Shahaf Shuler > <shah...@mellanox.com>; Thomas Monjalon <tho...@monjalon.net>; > Olga Shern <ol...@mellanox.com>; Ophir Munk <ophi...@mellanox.com>; > Yongseok Koh <ys...@mellanox.com> > Subject: [dpdk-dev] [PATCH v1] app/testpmd: set default RSS key as NULL > > When creating an RSS rule without specifying a key (see [1]) it is expected > that the device will use the default key. > A NULL key is uded to indicate to a PMD it should use its default key, > however testpmd assigns a non-NULL dummy key (see [2]) instead. > This does not enable testing any PMD behavior when the RSS key is not > specified. This commit fixes this limitation by setting key to NULL. > > [1] > RSS rule example without specifying a key: > flow create 0 ingress <pattern> / end actions rss queues 0 1 end / end [2] > Testpmd default key assignment: > .key= "testpmd's default RSS hash key, " > "override it for better balancing" > > Signed-off-by: Ophir Munk <ophi...@mellanox.com> > --- > v1: Initial version > > app/test-pmd/cmdline_flow.c | 15 ++------------- > 1 file changed, 2 insertions(+), 13 deletions(-) > > diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c > index 23ea7cc..91e2e35 100644 > --- a/app/test-pmd/cmdline_flow.c > +++ b/app/test-pmd/cmdline_flow.c > @@ -3248,26 +3248,15 @@ static int comp_vc_action_rss_queue(struct > context *, const struct token *, > .func = RTE_ETH_HASH_FUNCTION_DEFAULT, > .level = 0, > .types = rss_hf, > - .key_len = sizeof(action_rss_data->key), > + .key_len = 0, > .queue_num = RTE_MIN(nb_rxq, > ACTION_RSS_QUEUE_NUM), > - .key = action_rss_data->key, > + .key = NULL, > .queue = action_rss_data->queue, > }, > - .key = "testpmd's default RSS hash key, " > - "override it for better balancing", > .queue = { 0 }, > }; > for (i = 0; i < action_rss_data->conf.queue_num; ++i) > action_rss_data->queue[i] = i; > - if (!port_id_is_invalid(ctx->port, DISABLED_WARN) && > - ctx->port != (portid_t)RTE_PORT_ALL) { > - struct rte_eth_dev_info info; > - > - rte_eth_dev_info_get(ctx->port, &info); > - action_rss_data->conf.key_len = > - RTE_MIN(sizeof(action_rss_data->key), > - info.hash_key_size); > - } > action->conf = &action_rss_data->conf; > return ret; > } > -- > 1.8.3.1