- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Vincent,
Thank you very much.
When dpdk run as linux app, how does the NIC works?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, would help if you can throw in a few lines on why or how NAPI is not PMD.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page