Embedded Intel® Core™ Processors
Communicate Intel® Core™ Hardware, Software, Firmware, Graphics Concerns

Data Plane Developer Kit

SMent1
Beginner
4,894 Views

The Data Plane SDK was announced last year (available 2Q2010) as Intel's solution for fast-path network processing. Previously, the only available solutions were proprietary via 3rd party vendors such as WindRiver. As far as I can tell, it is still not available. Does anyone have info regarding release dates for the SDK? We are interested in gaining knowledge on this subject for a future IPTV VOD-server project.

Thanks,

Steve

29 Replies
FMcNu1
Valued Contributor I
2,451 Views

Hi Steve:

Welcome to the Intel® Embedded Community.

Do you happen to have a link to info on this SDK? Or do you recall where you saw the announcement? I looked around intel.com and don't find anything.

Thanks

Felix

J. Felix McNulty

Community Moderator

(Intel contractor)

0 Kudos
SMent1
Beginner
2,451 Views

Hi Felix, thanks for responding.

See page 7: http://download.intel.com/embedded/applications/networksecurity/323814.pdf http://download.intel.com/embedded/applications/networksecurity/323814.pdf. There are other papers that refer to a Data Plane SDK, too. Let me know if you would like to see them.

Regards,

Steve

0 Kudos
Michael_L_Intel3
Employee
2,451 Views

Hi Steve,

my name is Michael Lynch and I am a Product Marketing Manager in Intel's Embedded Communications Group.

The Intel® Data Plane Development kit (Intel® DPDK) is not yet broadly available and is still in the "Early Access" phase, whereby it is being made available under NDA to select customers and ecopartners for evaluation and feedback. We do have plans to make the software available under a broader distribution model in the future.

If you would like to know more, please contact me directly at my email address below.

Best regards,

Michael

Product Marketing Manager

Embedded Communications Group

Intel Corporation

email: mailto:michael.a.lynch@intel.com michael.a.lynch@intel.com

0 Kudos
VJard
Beginner
2,451 Views

Hi Steve,

If you whish to benchmark it, the DPDK is integrated with the 6WINDGate's dataplane. Please, contact 6WIND's support.

Best regards,

Vincent

0 Kudos
MHaye2
Beginner
2,451 Views

Hi Michael, I am searching for the latest version of the DPDK download (version 1.1 according to the API documentation. My company has a privledged account and I have downloaded all the releated privledged docs but I cannot find the download for the actual kit. Can you help please,

Martin

0 Kudos
SZare
Beginner
2,451 Views

Get Access to Intel® Data Plane Development Kit (Intel® DPDK) source code

I'm so forested a week of search and contacting the appropriate people and posting at premier help ( https://premier.intel.com/premier/PremierResources.aspx https://premier.intel.com/premier/PremierResources.aspx)

I've not able to find or get an access to Intel® Data Plane Development Kit (Intel® DPDK) source code.

I got a copy of "Developer's Reference" but that is it.

Is there anyone out there can help me please?

0 Kudos
Michael_L_Intel3
Employee
2,451 Views

Hi Steven,

per my comments above, the Intel(r) Data Plane Development Kit is still under the guise of an Early Access program, where the code can only be released under NDA and only when a candidate company is accepted into the early access program. Please contact me directly if you'd like to know more.

Best regards,

Michael

0 Kudos
ZAn
Beginner
2,451 Views

Hi Felix,

I'm working on DPDK, but I'm not very clear about the relation between the NIC driver and DPDK.

You know, DPDK can run as app on Linux. So doen that means latest linux kernel driver of intel NIC has supported DPDK?

Another problem: what platform does DPDK support? What CPU does it support?

Thank you.

0 Kudos
VJard
Beginner
2,451 Views

The Linux kernel drivers are not used by the DPDK. The DPDK includes its own drivers which are made of a different paradigm: "Polling" and "no OS".

Both drivers are exclusive:

- either your PCI NIC device is managed by Linux (igb, ixgb)

- either your PCI NIC device is managed by the DPDK (librte_82576_pmd/ or librte_82599_pmd/)

The DPDK looks like a library that your applications should link with and it should be used to bypass the OS services (so drivers). DPDK is optimized for Intel architectures.

Best regards,

Vincent@6WIND

0 Kudos
ZAn
Beginner
2,451 Views

Hi Vincent,

Thank you very much.

When dpdk run as linux app, how does the NIC works?

0 Kudos
VJard
Beginner
2,451 Views

There are two parts, let's try to make it simple:

- probes -> main() / init()

There is a userland PCI probing during the startup of the userland process (see the main()) and init() functions. Then, it maps the memory to read/write to the PCI NICs.

- RX/TX -> main loop

In order to receive packets, using the properly mapped memory during the init, it polls the queues of packets which have been DMA-ed into the memory.

In order to send, still using this mapped memory, it fills some queues with packets and it requests to the NICs to drain (DMA-ed) those queues of packets which are sent on the wire.

This main loop is made of a while(1) { } in order to pump the packets and then to push the packets.

The Linux kernel drivers are NOT used anymore when the PMD runs for the NICs which are managed by the DPDK. Other NICs can still be managed by the Linux kernel drivers.

If you want to better understand some insides, there are some examples of code and a good documentation about it into the DPDK source code itself (I cannot post, you would need NDA with 6WIND or Intel or etc...). Or I can only advice you to play with the 6WINDGate dataplane that includes a fine grain integration of the DPDK for high speed and low latency packet processing.

Best regards,

Vincent@6WIND

0 Kudos
SGosw2
Beginner
2,451 Views

Hi, the Linux ixgbe drivers are already NAPI enabled, which supports a poll mode. I am curious about why NAPI was not considered optimum enough for packet processing. Would appreciate any insight. Thanks

0 Kudos
VJard
Beginner
2,451 Views
0 Kudos
SGosw2
Beginner
2,451 Views

Ok, would help if you can throw in a few lines on why or how NAPI is not PMD.

0 Kudos
jxie9
Beginner
2,451 Views

Hi vincent,

After I bound a net device to IGB_UIO driver, if I want to configure it for network access, use linux tools like ifconfig, what should I do? in DPDK, is kni response for this function?

any response will be appericated!

0 Kudos
VJard
Beginner
2,451 Views

Hi Jiexie,

KNI would provide path to your kernel (a kind of fast TUN/TAP channel), but it is not designed to manage (ifconfig'd) the ethernet ports with some IP addresses. In order to configure IP addresses, it means that you need a stack; but DPDK provides only library (librte_*). In order to get a stack, check: www.6wind.com which is the best I know , see: http://www.6wind.com/products/6windgate-protocols/ http://www.6wind.com/products/6windgate-protocols/

Sorry,

Vincent

0 Kudos
jxie9
Beginner
2,451 Views

Hi vincent, thanks for responding.

so I can transmit packets to kernel through KNI, let linux network protocol stack process the related packets, then I can use ifconfig, tcpdump...

besides, I met a problem when test the kni example provided by intel, can you please give some advice?

EAL: memzone_reserve_aligned_thread_unsafe(MP_mbuf_pool, 311173440, 0)No appropriate segment found

EAL: Error - exiting with code: 1

Cause: Could not initialise mbuf pool

0 Kudos
Natalie_Z_Intel
Employee
2,451 Views

Hi Jiexie,

After the KNI user space example application and kernel module both successfully loaded, the KNI creates a vEth0net_dev that is very similar to regular Linux network device drive, so standard Linux tools like ifconfig, ip link, ethtool can be used to configure this vEth0 device. The Linux kernel stack will be used in this case.

The only difference of KNI vs. regular network device drive is that the KNI talks to user space PMD rather

 

than NIC via FIFOs.
0 Kudos
Natalie_Z_Intel
Employee
2,451 Views

Here is another resource for http://www.dpdk.org/ DPDK. Intel DPDK is a set of libraries and drivers for fast packet processing on x86 platforms. It runs mostly in Linux userland. This project tracks Intel DPDK and includes all major public contributions.

jxie9
Beginner
2,210 Views

 

Hi LynnZ,

Thanks for your response!

NOW I use kni crete two vEthX device, and configure with address, connect the two ports coressponding vEthX device, but ping fails, no ARP reply is sent, so no ICMP reply.

some docs said packets are sent to kernel stack through KNI interface vEthX device, so there should be ARP reply sent out, but not, or vEthx just receive and send out, no matter what types of packets.

the corresponding ports of vEth0 and vEth1 are connected.

[root@localhost ~]# ifconfig vEth0

 

vEth0 Link encap:Ethernet HWaddr 00:1E:67:24:08:DA

 

inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0

 

inet6 addr: fe80::21e:67ff:fe24:8da/64 Scope:Link

 

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

 

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

 

TX packets:30 errors:0 dropped:0 overruns:0 carrier:0

 

collisions:0 txqueuelen:1000

 

RX bytes:0 (0.0 b) TX bytes:1908 (1.8 KiB)

[root@localhost ~]# ifconfig vEth1

 

vEth1 Link encap:Ethernet HWaddr 00:1E:67:24:08:DB

 

inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0

 

inet6 addr: fe80::21e:67ff:fe24:8db/64 Scope:Link

 

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

 

RX packets:15 errors:0 dropped:0 overruns:0 frame:0

 

TX packets:6 errors:0 dropped:0 overruns:0 carrier:0

 

collisions:0 txqueuelen:1000

 

RX bytes:900 (900.0 b) TX bytes:468 (468.0 b)

[root@localhost ~]#

 

[root@localhost ~]#

 

[root@localhost ~]# ping 192.168.1.1 -I vEth1

 

PING 192.168.1.1 (192.168.1.1) from 192.168.1.2 vEth1: 56(84) bytes of data.

 

From 192.168.1.2 icmp_seq=2 Destination Host Unreachable

 

From 192.168.1.2 icmp_seq=3 Destination Host Unreachable

 

From 192.168.1.2 icmp_seq=4 Destination Host Unreachable

 

From 192.168.1.2 icmp_seq=6 Destination Host Unreachable
0 Kudos
Reply