Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VxWorks 10GbE driver

295 views
Skip to first unread message

Gangadhar N

unread,
Jul 11, 2013, 11:30:16 AM7/11/13
to
Hi All,
I'm running VxWorks on QorIQ P4040 processor. I'm sending data from P4040 using sendto()over 10GbEthernet interface. Data rate is 600Mbps(Mega bits per second).I want to achieve data rate of atleast 6Gbps. I need ideas/code to tweak the driver. Please help me. This is little bit urgent.

Thanks & Regards,
Gangadhar

nois...@gmail.com

unread,
Aug 13, 2013, 7:37:08 PM8/13/13
to
Sadly, your question lacks a lot of detail. You don't tell us:

- What version of VxWorks you're using
- What kind of runtime configuration you're using (UP vs. SMP)
- What kind of network traffic you're dealing with (TCP? UDP?)
- What kind of system is on the other end of your 10GbE link (another P4040? a Windows host? a FreeBSD host? a Linux host?)

All of these things matter.

You're going to have trouble getting very high speed from the 10GbE port with the standard TCP/IP stack. This is because it doesn't have any special optimizations for the QorIQ DPAA hardware. There are drivers for the Qman, Bman and Fman components, however the TCP/IP stack has not been specially modified to take special advantage of them. The DTSEC and TGEC drivers are just standard END drivers layered on top of the Qman/Bman/Fman infrastructure.

Also, the QorIQ DPAA architecture is designed to provide the best optimization for packet pushing applications, like forwarding or firewalling. This is different from endpoint applications, like file serving. The DPAA is great for fast path ingress/egress processing -- if you use it right. For something like an http server though, you can gain some performance by using the multiple cores to run several handling tasks in parallel and using the DPAA to help classify the traffic and dispatch it to those cores, but that requires a lot of customizations. The TCP/IP stack that comes with VxWorks is designed to be portable to all supported platforms, so it isn't customized for those kinds of things.

The only general things you can try are:

1) Use SMP. You should gain some performance with an SMP kernel (tNet0 and your application task can run on their own cores)
2) Use jumbo frames. To do this, add a "jumboFrames" parameter to the hwconf.c file like the documentation in the TGEC driver source tells you to do, then do:

-> ifconfig "tgec0 mtu 9000"

Note that in order for this to work, all connected devices must support jumbo frames. That includes the host on the other side and any switches in between. If the host on the other side is not VxWorks, then consult your OS documentation on how to enable jumbo frames. For most UNIXes and Linux, you just need to increase the MTU as shown above, assuming the underlying driver supports it.

-Bill

kyleat...@gmail.com

unread,
Jun 10, 2015, 4:50:11 PM6/10/15
to
Are you still working on this project? How did you get 10GbE to work with VxWorks?

abhi.b...@gmail.com

unread,
Oct 27, 2015, 12:34:02 AM10/27/15
to
hello sir,

i'm working on vxWorks 6.9 , can you please tell me how to link OS interface , RLP examples and chip object.

actually i'm using NI-hardware for which i have drivers , but not able to link drivers and examples

please tell me something about that.

thanks and regards
abhishek bhardwaj

deepe...@gmail.com

unread,
Mar 17, 2017, 3:28:22 AM3/17/17
to
Hey!

Which PHY driver you r using?
Had u got the solution?
0 new messages