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 Tue, Jan 15, 2013 at 12:11 AM, Matt Thomas wrote:
> On Jan 14, 2013, at 5:45 AM, Greg Troxel wrote:
>> dave jones <> 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 
> ( 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.

Awesome! I tried to compile kernel with your diff. I got an error
while running a testing program:

udpliteclient: setsockopt(UDPLITE_SEND_CSCOV): Protocol option not available

Should I need to recompile libc as well or did I miss something? Thank you.


Home | Main Index | Thread Index | Old Index