Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Dec 2008 17:54:24 -0500
From:      Lowell Gilbert <freebsd-questions-local@be-well.ilk.org>
To:        freebsd-questions@freebsd.org
Subject:   Re: Network Stack Code Re-write (Possible motivations...?)
Message-ID:  <441vw2zcdb.fsf@lowell-desk.lan>
In-Reply-To: <20081220224016.S10302@wojtek.tensor.gdynia.pl> (Wojciech Puchar's message of "Sat\, 20 Dec 2008 22\:41\:13 %2B0100 \(CET\)")
References:  <1229788709.1583.16.camel@MGW_1> <44iqpezlb8.fsf@lowell-desk.lan> <20081220205414.A10042@wojtek.tensor.gdynia.pl> <448wqazfyf.fsf@lowell-desk.lan> <20081220224016.S10302@wojtek.tensor.gdynia.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
Wojciech Puchar <wojtek@wojtek.tensor.gdynia.pl> writes:

>>>> I very much doubt that marketing issues were a significant issue.
>>>> Off-the-shelf OS networking has always fallen short of supporting
>>>
>>> it wasn't made for that.
>>
>> It can be.  I've written portable IP stacks intended for exactly this
> Of course it can. i just write that FreeBSD network stack WASN'T MADE
> for that.
> not if it can or not.

I had deliberately worked around this topic because FreeBSD's routing
table implementation has made considerable strides in virtualization
lately (for which, as far as I know, the credit is almost entirely due
to Julian Elischer), and this will probably turn out to make it more
useful for commercial routers.  So far, however, these changes are
irrelevant to the historical question of Juniper's use of FreeBSD code.

>>> routing ASIC's and put them there!
>>
>> Mostly, yes.  But the system still has to be network manageable.  That
>> requires that it send and receive packets.  Doing so requires using the
>> same routing information that the forwarding engines are using to
>> forward packets in the same address space.  The kernel *does* still need
>> to know routes to any of its destinations.
>
> but kernel doesn't forward much packets.

It may not not forward any, but your statement that all it does with IP
is put data into ASICs is still generally incorrect.  It generally does
*send* and *receive* packets, and as such it needs routing information.

It is possible to use a FreeBSD kernel without the IP stack (and this
has been done on particularly deeply embedded processors).  However,
commercial routers generally do not use their OS kernel this way -- it
is far more common that the kernel does send and receive packets within
its native IP stack.  That forwarding data is usually coordinated with
the entity managing the routing data, although sometimes the management
is done completely out-of-band, in which case the kernel's forwarding
data need not have any connection with the data driven into the
forwarding hardware.

-- 
Lowell Gilbert, embedded/networking software engineer, Boston area
		http://be-well.ilk.org/~lowell/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?441vw2zcdb.fsf>