NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: UDP Lite Support on NetBSD 6.0



On Jan 14, 2013, at 5:45 AM, Greg Troxel wrote:

> 
> dave jones <s.dave.jones%gmail.com@localhost> writes:
> 
>> I'd work on it and learn NetBSD network internals, but it seems
>> like there is a lot of duplicated code in order to implement UDP-Lite.
>> For example, in udp_output(), to fill in mbuf with extended UDP-Lite header,
>> I'd add the following code:
>> 
>> #ifdef UDPLITE
>>        ui->ui_pr = IPPROTO_UDPLITE;
>> #else
>>        ui->ui_pr = IPPROTO_UDP;
>> #endif
>> 
>> Is it a good idea? or any some suggestions? Thank you.
> 
> Adding support for UDP-Lite should not involve removing support for
> UDP.

Indeed.  I have untested diffs for UDP-lite 
(http://www.netbsd.org/~matt/udplite-diffs.txt) but realized that without 
corresponding changes to all the network drivers, what's the point?

For UDPlite to be useful, the network drivers would need to stop discarding 
packets with CRC errors and instead pass them up the stack.  We'd need a 
M_BADCRC flag to tag packets with bad CRCs.  We also need code to identify 
packets as UDPlite.  Then each common if_xxxsubr needs to test that flag and if 
set check for udplite, and if not discard.

I thought about it and realized the additional overhead and complexity just 
wasn't worth it so I stopped working on it.


Home | Main Index | Thread Index | Old Index