HEADS UP: INET dependencies in the kernel

Skip to first unread message

Bjoern A. Zeeb

Jun 11, 2009, 4:34:15 PM6/11/09

over the last days I fixed a few places missing #ifdef INET as well
changed the kernel build file in sys/conf/files and added depencies
for those parts that really require INET to compile / work at the

This means for example if you build a kernel without INET you will no
longer get gre, ipfw, libablias, ipsec, if_enc, if_bridge, nfsserver, ..
Those will _silently_ be disabled whether or not they are in your
kernel configuration.

You will also not get any of the 12 interfaces I found that had a
compile time dependency on INET (if you remove INET from your kernel
config): if_age, if_alc, if_ale, if_em, if_igb, if_fxp, if_ixgbe,
if_jme, if_msk, if_mxge, if_sk, if_txp. I will send out an extra mail
with more information on each interface and how to fix later in a
second. (The same may apply to some other code).

See r193824, r193949-193950, 193954, 193956-193957, 193960, 193983,
193986-193988, 193990-193991, 193993-193994, 193996-193997 of
sys/conf/files for what was changed and if you are looking for a
network project to cleanup a bit of our stack.

For now I didn't see much of a problem here, as virtually noone so far
would have built a kernel without INET support and still wanted
networking as it just hadn't (easily) been possible.

Obviously people may be concerned that those things will rot and
warn others with #error anymore and that other people will one day
trip over this. Unless hit by a bus I do not intend to drop this
ball but will work (together with you!) to clean things up, resolve
them, etc.

For now the goal was to actually see how much of impure code we have
and clean things basically up before 8.0.
Now do not expect that I caught all and everything. We are far away
from that. The long term goal is to separate INET6 off INET.

So in addition to a kernel config like:

include LINT

nooptions INET6

FreeBSD 8 LINT currently also builds a kernel with:

include LINT

makeoptions NO_MODULES=yes

nooptions INET
nooptions INET6

Note: LINT will not boot!

In case of arm I include AVILA, in case of mips I used ADM5120
instead of LINT (as arm and mips do not have LINT).

For developers this means that if you add new code you really should
make sure that INET in addition to INET6 will be properly #ifdefed.

This is kind of a heads up that from the time 8 will be branched off
and HEAD will be 9 all new code should
1) have feature parity for INET and INET6 where applicable
2) new/changed code that only has #ifdef INET6 but no #ifdef INET
(where applicable) should no longer be done.
3) No it's not April 1st today;-)


Bjoern A. Zeeb The greatest risk is not taking one.
freebsd...@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-curre...@freebsd.org"

Andrew Gallatin

Jun 11, 2009, 5:49:31 PM6/11/09
Bjoern A. Zeeb wrote:

> This is kind of a heads up that from the time 8 will be branched off
> and HEAD will be 9 all new code should
> 1) have feature parity for INET and INET6 where applicable

As a sort of side-note, what about feature parity for INET6 for
existing IPV4 features like TSO? Who is working on that?



Reply all
Reply to author
0 new messages