[dpdk-dev] [dpdk-dev v2 3/4] app/testpmd: support GTP PDU type

Jeff Guo jia.guo at intel.com
Tue Apr 7 07:37:08 CEST 2020


hi, Ori

On 4/5/2020 11:56 PM, Ori Kam wrote:
> Hi Jeff,
>
>> -----Original Message-----
>> From: Jeff Guo <jia.guo at intel.com>
>> Sent: Tuesday, March 31, 2020 11:50 AM
>> To: Ori Kam <orika at mellanox.com>; xiaolong.ye at intel.com;
>> qi.z.zhang at intel.com
>> Cc: dev at dpdk.org; jingjing.wu at intel.com; yahui.cao at intel.com;
>> simei.su at intel.com
>> Subject: Re: [dpdk-dev] [dpdk-dev v2 3/4] app/testpmd: support GTP PDU type
>>
>> yes, Ori, please check the comment below.
>>
>>
>> On 3/30/2020 6:18 PM, Ori Kam wrote:
>>> Hi Jeff,
>>>
>>> My name is Ori 😊
>>>
>>> I'm not an expert in GTP so this is just my thinking and maybe I'm
>>> missing something, this is why a good explanation helps 😊
>>>
>>>> -----Original Message-----
>>>> From: Jeff Guo <jia.guo at intel.com>
>>>> Sent: Monday, March 30, 2020 11:30 AM
>>>> To: Ori Kam <orika at mellanox.com>; xiaolong.ye at intel.com;
>>>> qi.z.zhang at intel.com
>>>> Cc: dev at dpdk.org; jingjing.wu at intel.com; yahui.cao at intel.com;
>>>> simei.su at intel.com
>>>> Subject: Re: [dpdk-dev] [dpdk-dev v2 3/4] app/testpmd: support GTP PDU
>> type
>>>> hi, orika
>>>>
>>>>
>>>> On 3/29/2020 4:44 PM, Ori Kam wrote:
>>>>> Hi Jeff,
>>>>>
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: dev <dev-bounces at dpdk.org> On Behalf Of Jeff Guo
>>>>>> Sent: Thursday, March 26, 2020 6:41 PM
>>>>>> To: xiaolong.ye at intel.com; qi.z.zhang at intel.com
>>>>>> Cc: dev at dpdk.org; jingjing.wu at intel.com; yahui.cao at intel.com;
>>>>>> simei.su at intel.com; jia.guo at intel.com
>>>>>> Subject: [dpdk-dev] [dpdk-dev v2 3/4] app/testpmd: support GTP PDU type
>>>>>>
>>>>>> Add gtp pdu type configure in the cmdline.
>>>>> Why not use ITEM_GTP_PSC_PDU?
>>>> I guess you mean ITEM_GTP_PSC_PDU_T, rihgt? We know  we have got
>>>> ITEM_GTP_PSC_QFI/ITEM_GTP_PSC_PDU_T but not define the
>>>>
>>>> spec for them, so what i use is add the spec into the ITEM_GTP_PSC_PDU_T
>>>> to let the pdu type to be configured.
>>>>
>>> Yes you are correct, from rte_flow we have the
>> RTE_FLOW_ITEM_TYPE_GTP_PSC
>>> Item that include pdu_type. This is the field you need right?
>>>
>>> In testpmd we have the ITEM_GTP_PSC_PDU_T which should support adding
>>> the pdu type.
>>> Basically you just need to type the following cmd line:
>>> flow create 0 ingress pattern gtp_psc pdu_t is xxx
>>> if this command is not working we need to understand why.
>>>
>>>
>> please check the part before this patch as below:
>>
>>           [ITEM_GTP_PSC_PDU_T] = {
>>                   .name = "pdu_t",
>>                   .help = "PDU type",
>>                  .next = NEXT(item_gtp_psc, NEXT_ENTRY(UNSIGNED),
>> item_param),
>>
>> sure, we got the ITEM_GTP_PSC_PDU_T at prior but the NEXT_ENTRY is
>> UNSIGNED, that means we still not implement
>>
> Sorry I don't understand your comment, what do you mean it is not implemented?
> Yes it means that the parameter is should  be unsigned value.


I mean that if it is a unsigned value, user could not set the pdu_t to 
be a 0 or 1, or any other we

define for that.


>> the spec to let the pdu type to be configurable, so what the patch do is
>> to fix this issue.
> What do you mean configurable?
>
> Lets start at the beginning, maybe I'm just missing some key point.
> What is the PDU type? What values can he hold?
> How do you want the command to look like?


the command should be like as below

flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 
0/ ipv4 / end actions rss types ipv4-udp l3-dst-only endkey_len 0queues 
end / end

It is eventually the same as you described about the command before.  
User could set pdu_t to be 0 or 1, so what is need is modify

NEXT_ENTRY(UNSIGNED) to be "SIGNED" and defined.


>>
>>>>>> Signed-off-by: Jeff Guo <jia.guo at intel.com>
>>>>>> ---
>>>>>> v1:
>>>>>> no change
>>>>>> ---
>>>>>>     app/test-pmd/cmdline_flow.c | 11 ++++++++++-
>>>>>>     1 file changed, 10 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
>>>>>> index a78154502..c1bd02919 100644
>>>>>> --- a/app/test-pmd/cmdline_flow.c
>>>>>> +++ b/app/test-pmd/cmdline_flow.c
>>>>>> @@ -49,6 +49,7 @@ enum index {
>>>>>>     	PORT_ID,
>>>>>>     	GROUP_ID,
>>>>>>     	PRIORITY_LEVEL,
>>>>>> +	GTP_PSC_PDU_T,
>>>>>>
>>>>>>     	/* Top-level command. */
>>>>>>     	SET,
>>>>>> @@ -1626,6 +1627,13 @@ static const struct token token_list[] = {
>>>>>>     		.call = parse_int,
>>>>>>     		.comp = comp_none,
>>>>>>     	},
>>>>>> +	[GTP_PSC_PDU_T] = {
>>>>>> +		.name = "{GTPU pdu type}",
>>>>>> +		.type = "INTEGER",
>>>>>> +		.help = "gtpu pdu uplink/downlink identifier",
>>>>>> +		.call = parse_int,
>>>>>> +		.comp = comp_none,
>>>>>> +	},
>>>>> Why is this created at this level?
>>>>> This looks like is should be written totally differently.
>>>> As i said above,  the item we got but spec or say next token still need
>>>> to be added, do you mean it should not in the group of Common tokens? If
>>>> so, let me think about that, and please explicit your proposal if you
>>>> already have one.
>>>>
>>> Please see above response.
>>>
>>>>>>     	/* Top-level command. */
>>>>>>     	[FLOW] = {
>>>>>>     		.name = "flow",
>>>>>> @@ -2615,7 +2623,8 @@ static const struct token token_list[] = {
>>>>>>     	[ITEM_GTP_PSC_PDU_T] = {
>>>>>>     		.name = "pdu_t",
>>>>>>     		.help = "PDU type",
>>>>>> -		.next = NEXT(item_gtp_psc, NEXT_ENTRY(UNSIGNED),
>>>>>> item_param),
>>>>>> +		.next = NEXT(item_gtp_psc, NEXT_ENTRY(GTP_PSC_PDU_T),
>>>>>> +			     item_param),
>>>>>>     		.args = ARGS(ARGS_ENTRY_HTON(struct
>>>>>> rte_flow_item_gtp_psc,
>>>>>>     					pdu_type)),
>>>>>>     	},
>>>>>> --
>>>>>> 2.20.1


More information about the dev mailing list