Efficient UDP processing
Efficient UDP processing
- Subject: Efficient UDP processing
- From: Laurence Flath <email@hidden>
- Date: Sat, 21 Jan 2006 18:03:34 -0800
Hello,
I'm attempting to write a GigE Vision 'driver'. GEV is a relatively
new standard for transferring digital video data over ethernet using
IP protocols. While it is not the most efficient transport medium,
it is (compared to other machine vision / scientific camera
solutions) significantly lower in both cost and hardware complexity;
e.g. everyone has a 'frame grabber' built-in, cables are dirt-cheap,
etc.
GEV data transport is via UDP; the majority of packets must be
processed thus:
1. Wait for next packet
2. Confirm it's an image data packet
3. Calculate what part of image the data came from (no in-order
guarantee in UDP)
4. Move the data into a memory buffer (user-space malloc'd)
5. Go to 1.
For GigE, MTU = 1500B, the above must be accomplished ~ 10usec to
keep up.
Unfortunately, I'm having a difficult time on my PBG4 (1GHz) even
keeping-up with 100Base-T. My program is currently in user space,
using the standard socket APIs.
Can anyone give me any guidance as to how to efficiently perform the
above operations? Do I need to packet-filter in a NKE? Are there
any ways to DMA the packet's payload into said buffer? This seems a
lot like writing a VNC client ... except that I can't afford to lose
any packets.
Thank you for any help!
Laurence
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden