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>