[dts] DDP / testpmd setup

Sebastian Foss sfo at ingenieurbuero-foss.de
Tue Aug 28 16:52:27 CEST 2018


Hi,

im only using testpmd to upload the ddp tot he card. After that i rebind to i40e and want to change the rss hashing or pppoe for the „regular“ network stack in linux. Seems like ddp is only supported in dpdk right now – although there are ddp references in the i40e linux driver.

 

Von: Rami Rosen <ramirose at gmail.com> 
Gesendet: Dienstag, 28. August 2018 16:49
An: Sebastian Foss <sfo at ingenieurbuero-foss.de>
Cc: dts at dpdk.org
Betreff: Re: [dts] DDP / testpmd setup

 

Hi Sebastian,

How did you found out it goes all to queue 0 ? is it by running testpmd in RXonly mode, and setting it to verbose 

and looking in the content of the packets it shows on the console  ? or by any other means ? 

Also can you describe your setup - is it with VMs, how do you send the traffic (scapy/pktgen/IXIA)?

 

Regards,

Rami Rosen

 

 

On Tue, Aug 28, 2018 at 5:42 PM Sebastian Foss <sfo at ingenieurbuero-foss.de <mailto:sfo at ingenieurbuero-foss.de> > wrote:

I used the latest pppoe ddp from intel’s website and tried to map/add pctypes 15 and 17 to the hashing – then run some pppoe when using i40e again and it still all goes to queue 0.

 

testpmd> ddp get info /home/dpdktest/ppp-oe-ol2tpv2.pkgo

Global Track id:       0x80000006

Global Version:        1.0.0.0

Global Package name:   PPPoE and PPPoL2TPv2

 

i40e Profile Track id: 0x80000006

i40e Profile Version:  1.0.0.0

i40e Profile name:     E710 PPPoE and PPPoL2TPv2

 

Package Notes:

This profile enables PPPoE and PPPoL2TPv2 parsing

L2TPv2 Tunnel ID extracted to field 46

L2TPv2/PPPoE Session ID extracted to field 47

PPP Protocol ID extracted to field 48

 

 

List of supported devices:

  8086:1572 FFFF:FFFF

  8086:1574 FFFF:FFFF

  8086:1580 FFFF:FFFF

  8086:1581 FFFF:FFFF

  8086:1583 FFFF:FFFF

  8086:1584 FFFF:FFFF

  8086:1585 FFFF:FFFF

  8086:1586 FFFF:FFFF

  8086:1587 FFFF:FFFF

  8086:1588 FFFF:FFFF

  8086:1589 FFFF:FFFF

  8086:158A FFFF:FFFF

  8086:158B FFFF:FFFF

 

List of used protocols:

  12: IPV4

  13: IPV6

  15: GRENAT

  17: TCP

  18: UDP

  19: SCTP

  20: ICMP

  22: L2TPv2CTRL

  23: ICMPV6

  26: L2TPv2

  27: L2TPv2PAY

  28: PPPoL2TPv2

  29: PPPoE

  33: PAY2

  34: PAY3

  35: PAY4

  44: IPV4FRAG

  48: IPV6FRAG

  52: OIPV4

  53: OIPV6

 

List of defined packet classification types:

  14: L2TPv2CTRL

  15: PPPoE IPV4

  16: PPPoE IPV6

  17: PPPoE

  18: PPPoL2TPv2 IPV4

  19: PPPoL2TPv2 IPV6

  20: PPPoL2TPv2

  21: L2TPv2PAY

 

List of defined packet types:

  154: PPPoE PAY2

  155: PPPoE IPV4FRAG PAY3

  156: PPPoE IPV4 PAY3

  157: PPPoE IPV4 UDP PAY4

  158: PPPoE IPV4 TCP PAY4

  159: PPPoE IPV4 SCTP PAY4

  160: PPPoE IPV4 ICMP PAY4

  161: PPPoE IPV6FRAG PAY3

  162: PPPoE IPV6 PAY3

  163: PPPoE IPV6 UDP PAY4

  164: PPPoE IPV6 TCP PAY4

  165: PPPoE IPV6 SCTP PAY4

  166: PPPoE IPV6 ICMPV6 PAY4

  167: OIPV4 L2TPv2 PPPoL2TPv2 PAY3

  168: OIPV4 L2TPv2 PPPoL2TPv2 IPV4FRAG PAY3

  169: OIPV4 L2TPv2 PPPoL2TPv2 IPV4 PAY3

  170: OIPV4 L2TPv2 PPPoL2TPv2 IPV4 UDP PAY4

  171: OIPV4 L2TPv2 PPPoL2TPv2 IPV4 TCP PAY4

  172: OIPV4 L2TPv2 PPPoL2TPv2 IPV4 SCTP PAY4

  173: OIPV4 L2TPv2 PPPoL2TPv2 IPV4 ICMP PAY4

  174: OIPV4 L2TPv2 PPPoL2TPv2 IPV6FRAG PAY3

  175: OIPV4 L2TPv2 PPPoL2TPv2 IPV6 PAY3

  176: OIPV4 L2TPv2 PPPoL2TPv2 IPV6 UDP PAY4

  177: OIPV4 L2TPv2 PPPoL2TPv2 IPV6 TCP PAY4

  178: OIPV4 L2TPv2 PPPoL2TPv2 IPV6 SCTP PAY4

  179: OIPV4 L2TPv2 PPPoL2TPv2 IPV6 ICMPV6 PAY4

  180: OIPV6 L2TPv2 PPPoL2TPv2 PAY3

  181: OIPV6 L2TPv2 PPPoL2TPv2 IPV4FRAG PAY3

  182: OIPV6 L2TPv2 PPPoL2TPv2 IPV4 PAY3

  183: OIPV6 L2TPv2 PPPoL2TPv2 IPV4 UDP PAY4

  184: OIPV6 L2TPv2 PPPoL2TPv2 IPV4 TCP PAY4

  185: OIPV6 L2TPv2 PPPoL2TPv2 IPV4 SCTP PAY4

  186: OIPV6 L2TPv2 PPPoL2TPv2 IPV4 ICMP PAY4

  187: OIPV6 L2TPv2 PPPoL2TPv2 IPV6FRAG PAY3

  188: OIPV6 L2TPv2 PPPoL2TPv2 IPV6 PAY3

  189: OIPV6 L2TPv2 PPPoL2TPv2 IPV6 UDP PAY4

  190: OIPV6 L2TPv2 PPPoL2TPv2 IPV6 TCP PAY4

  191: OIPV6 L2TPv2 PPPoL2TPv2 IPV6 SCTP PAY4

  150: OIPV6 L2TPv2 PPPoL2TPv2 IPV6 ICMPV6 PAY4

  12: OIPV4 L2TPv2 L2TPv2CTRL PAY4

  13: OIPV6 L2TPv2 L2TPv2CTRL PAY4

  14: OIPV4 L2TPv2 L2TPv2PAY PAY3

  15: OIPV6 L2TPv2 L2TPv2PAY PAY3

 

Von: Rami Rosen <ramirose at gmail.com <mailto:ramirose at gmail.com> > 
Gesendet: Dienstag, 28. August 2018 16:38
An: Sebastian Foss <sfo at ingenieurbuero-foss.de <mailto:sfo at ingenieurbuero-foss.de> >
Cc: dts at dpdk.org <mailto:dts at dpdk.org> 
Betreff: Re: [dts] DDP / testpmd setup

 

Hi Sebastian,

 

What do you get when running:

 

testpmd> ddp get info (profile_path)

 

See:
https://doc.dpdk.org/guides/testpmd_app_ug/testpmd_funcs.html

 

Regards,

Rami Rosen

 

 

On Tue, Aug 28, 2018 at 5:33 PM Sebastian Foss <sfo at ingenieurbuero-foss.de <mailto:sfo at ingenieurbuero-foss.de> > wrote:

Hi,

ok seems the ddp profiles are persistent when unbinding and rebinding the dpdk / linux drivers. However it seems like the ddp profile is not used for rss hashing when i bind the i40e driver and run some test (e.g. PPPoE traffic).

Are there any plans to support ddp profiles for rss hashing when i40e is used without dpdk ?

 

Thanks.

 

Von: Rami Rosen <ramirose at gmail.com <mailto:ramirose at gmail.com> > 
Gesendet: Sonntag, 26. August 2018 22:46
An: Sebastian Foss <sfo at ingenieurbuero-foss.de <mailto:sfo at ingenieurbuero-foss.de> >
Cc: dts at dpdk.org <mailto:dts at dpdk.org> 
Betreff: Re: [dts] DDP / testpmd setup

 

Hi, Sebastian,

Regarding rebinding, there are two types:

One is with 

dpdk-devbind -b i40e pci_id_of_port

And the second is the ribust one:

rmmod i40e and then modprobe i40e. I am not sure as to which of the two you aim when talking about rebinding.

I would suggest to start with the first option. It triggers calling the probe() callback of I40E, and not the full longer and heavier way with I40E module_exit() and module_init() callbacks

 

Regarding userspace app for achieving it: you can follow the dpdk testpmd code, but

this can take quite a time and effort.

 

Regards,

Rami Rosen

 

 

בתאריך יום א׳, 26 באוג׳ 2018, 22:57, מאת Sebastian Foss ‏<sfo at ingenieurbuero-foss.de <mailto:sfo at ingenieurbuero-foss.de> >:

Hi Rami,

I found the switch for testpmd to use a cmd line script instead of using interactive mode. Still need to see if loading a ddp persists on the card when rebinding the i40e driver instead of vfio / uio.

The kernel i40e driver also seems to have the functions to use AdminQ to load DDPs onto the card – however im not sure how to do it from userland.

 

 

Von: Rami Rosen <ramirose at gmail.com <mailto:ramirose at gmail.com> > 
Gesendet: Sonntag, 26. August 2018 20:59
An: sfo at ingenieurbuero-foss.de <mailto:sfo at ingenieurbuero-foss.de> 
Betreff: Re: [dts] DDP / testpmd setup

 

Hi Sebastian,

I don't know of such a way, unfortunately. Also you cannot automate testpmd

as it is to load the profile automatically without going interactive mode.

 

Regards,

Rami Rosen

http://ramirose.wix.com/ramirosen

 

 

 

 

On Sun, Aug 26, 2018 at 3:18 PM Sebastian Foss <sfo at ingenieurbuero-foss.de <mailto:sfo at ingenieurbuero-foss.de> > wrote:

Hi,

we are using testpmd to store ddp profiles in an Intel X710DA2 NIC. Is there a way to have those profiles stored in the NIC permanently – or what would be the best solution to have those profiles loaded automatically at boot and use a regular kernel driver afterwards ? From what i understand so far to use the DPDK functions to load a DDP Profile the UIO or VFIO drivers have to be used.

 

Thank you!

 

Mit freundlichen Grüßen / Best Regards

Sebastian Foss, Electrical Engineering (B. Eng.)

Hardware & Software Development

Geschäftsführer / CEO

SF Engineering UG & Co. KG

 

 



-- 

regards,

Rami Rosen



-- 

regards,

Rami Rosen



-- 

regards,

Rami Rosen

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mails.dpdk.org/archives/dts/attachments/20180828/98ca6749/attachment.html>


More information about the dts mailing list