History log of /openbsd-current/sys/nfs/nfs_boot.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.49 01-May-2024 jsg

remove unneeded includes
ok miod@ mpi@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE OPENBSD_7_5_BASE
# 1.48 05-Mar-2022 jsg

remove fddi leftover
no binary change


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.47 19-Jan-2021 mvs

nfs/nfs_boot.c: convert ifunit() to if_unit(9)

ok dlg@


Revision tags: OPENBSD_6_8_BASE
# 1.46 24-Aug-2020 mvs

According the code `nfsbootdevname' is always set to network device name
we expected. Remove the `else' path from nfs_boot_init(). If
`nfsbootdevname' is not set something goes wrong and this is the panic
condition. Also we exclude the case where we can get `ifp' which we don't
expect.

OK mpi@


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.45 30-Jul-2018 mpi

Use FNONBLOCK instead of SS_NBIO to check/indicate that the I/O mode
for sockets is non-blocking.

This allows us to G/C SS_NBIO. Having to keep the two flags in sync
in a mp-safe way is complicated.

This change introduce a behavior change in sosplice(), it can now
always block. However this should not matter much due to the socket
lock being taken beforhand.

ok bluhm@, benno@, visa@


Revision tags: OPENBSD_6_3_BASE
# 1.44 14-Nov-2017 tb

Push the NET_LOCK into ifioctl() and use the NET_RLOCK in ifioctl_get().
In particular, this allows SIOCGIF* requests to run in parallel.

lots of help & ok mpi, ok visa, sashan


Revision tags: OPENBSD_6_2_BASE
# 1.43 11-Aug-2017 mpi

Remove NET_LOCK()'s argument.

Tested by Hrvoje Popovski, ok bluhm@


# 1.42 19-Jul-2017 claudio

If second xdr_string_encode() fails in bp_getfile() m_freem() m since
this mbuf was allocated by the first call. Fixes possible memory leak.
Found by Ilja Van Sprundel
OK bluhm@ deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.41 19-Dec-2016 mpi

Introduce the NET_LOCK() a rwlock used to serialize accesses to the parts
of the network stack that are not yet ready to be executed in parallel or
where new sleeping points are not possible.

This first pass replace all the entry points leading to ip_output(). This
is done to not introduce new sleeping points when trying to acquire ART's
write lock, needed when a new L2 entry is created via the RT_RESOLVE.

Inputs from and ok bluhm@, ok dlg@


# 1.40 22-Nov-2016 mpi

Enforce that ifioctl() is called at IPL_SOFTNET.

This will allow us to keep locking simple as soon as we trade
splsoftnet() for a rwlock.

ok bluhm@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.39 01-Sep-2015 bluhm

Replace sockaddr casts with the proper satosin(), ... calls.
From David Hill; OK mpi@; tested kspillner@; tweaks bluhm@


# 1.38 14-Aug-2015 bluhm

Replace sockaddr casts with the proper satosin() or satosin6() calls.
From David Hill; OK mpi@


Revision tags: OPENBSD_5_8_BASE
# 1.37 15-Jul-2015 deraadt

m_freem() can handle NULL, do not check for this condition beforehands.
ok stsp mpi


Revision tags: OPENBSD_5_7_BASE
# 1.36 05-Dec-2014 mpi

Explicitly include <net/if_var.h> instead of pulling it in <net/if.h>.

ok mikeb@, krw@, bluhm@, tedu@


# 1.35 14-Nov-2014 tedu

bzero -> memset


# 1.34 14-Sep-2014 jsg

remove uneeded proc.h includes
ok mpi@ kspillner@


# 1.33 08-Sep-2014 jsg

remove uneeded route.h includes
ok miod@ mpi@


Revision tags: OPENBSD_5_6_BASE
# 1.32 07-May-2014 mpi

Remove the last hacks concerning the global list of IPv4 addresses in the
source address selection logic.

These hacks were only relevant for the NFS diskless boot code in order to
pick the local broadcast address of the only configured interface. So, be
explicit and set this address directly.

Tested by florian@, ok henning@, beck@, chrisz@


# 1.31 20-Mar-2014 mpi

Kill NFS_BOOT_GATEWAY, ok deraadt@


Revision tags: OPENBSD_5_5_BASE
# 1.30 11-Nov-2013 mpi

Replace most of our formating functions to convert IPv4/6 addresses from
network to presentation format to inet_ntop().

The few remaining functions will be soon converted.

ok mikeb@, deraadt@ and moral support from henning@


# 1.29 20-Sep-2013 fgsch

Add support for root on nfs using v3. Code adapted from NetBSD.
Tested on sparc by miod, octeon by aalm and armv7 by me.
miod ok.


# 1.28 12-Sep-2013 deraadt

typo; Eivind Evensen


Revision tags: OPENBSD_5_4_BASE
# 1.27 22-May-2013 mpi

Use SIOCAIFADDR rather than SIOCSIFADDR to set the address.

ok mikeb@, claudio@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.26 03-Apr-2010 krw

Don't return 0 if error is set to EBADRPC. Found by jsg@ and clang.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE
# 1.25 19-Oct-2009 jsg

antsy
no binary change apart from nfsm_reqhead() which is clearly correct.

ok thib@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.24 11-Jun-2008 blambert

Canonical for() -> queue.h FOREACH macro conversions.
Also, it is historical practice to #include <sys/queue.h>
when using queue.h macros.

ok thib@ krw@

special thanks to krw@ for reminders vice violence


# 1.23 27-May-2008 deraadt

be much more clear about revarp failures; ok miod


# 1.22 20-May-2008 claudio

Fix last commit, it is rtrequest1() and not rtrequest(). Lucky me it seems
that the code is ifdef-ed out all the time.


# 1.21 09-May-2008 claudio

Another rtrequest() rtrequest1() replacement.
OK henning@


# 1.20 31-Mar-2008 deraadt

Refine "netboot" interface group semantics to indicate the interface we
booted from to the most precision; preferring the boot device, or if that
is not known, the root device
discussed with miod and reyk
tested by beck


# 1.19 19-Mar-2008 deraadt

label all interfaces we netboot from in group "netboot", in a MI fashion
ok miod


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.18 17-Jun-2006 henning

adopt to extended rtrequest / rtalloc1 api


# 1.17 26-May-2006 deraadt

prettier printing


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE
# 1.16 04-Nov-2004 pedro

implememtation -> implementation


Revision tags: OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
# 1.15 02-Jun-2002 deraadt

correct fake nfs_boot_getfh(); ski@wuhjuhbuh.2y.net


Revision tags: OPENBSD_3_1_BASE
# 1.14 14-Mar-2002 millert

First round of __P removal in sys


# 1.13 16-Jan-2002 ericj

use queue.h macro's
remove register


Revision tags: UBC_BASE
# 1.12 14-Nov-2001 mickey

branches: 1.12.2;
allow swaples diskless configs; deradt@ ok


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE SMP_BASE kame_19991208
# 1.11 03-Jan-1999 deraadt

branches: 1.11.6;
print addresses using inet_ntoa ( )


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE
# 1.10 22-Jan-1997 deraadt

get the ethernet/fddi issue half right. This needs to be fixed better


# 1.9 20-Jan-1997 graichen

better use (NETHER == 0) instead of NETHER == 0


# 1.8 20-Jan-1997 graichen

replace #ifndef NFSCLIENT with #if !defined(NFSCLIENT) || NETHER == 0
because revarpwhoami is defined in if_ether.c and netbooting without
an ethernet card is very unusual :-)

p.s.: seems like nobody uses OpenBSD in machines without a network
card - because due to this it was'nt possible to build a kernel for
such a configuration ...


# 1.7 20-Oct-1996 briggs

Fix panic message if NFSCLIENT is not defined.


# 1.6 20-Oct-1996 briggs

Make support for booting over NFS dependent on NFSCLIENT instead of NETHER.
Suggested in a NetBSD PR from Paul Goyette.


Revision tags: OPENBSD_2_0_BASE
# 1.5 10-May-1996 deraadt

if_name/if_unit -> if_xname/if_softc


# 1.4 31-Mar-1996 mickey

From NetBSD: NFSv3 import (tomorrow's Net's kernel)
Open's patches kept in. i'll possibly take a look at Lite2 soon,
is there smth usefull ?..


# 1.3 29-Feb-1996 niklas

From NetBSD: merge with 960217 (still NFSv2)


# 1.2 21-Dec-1995 deraadt

from cgd; handle 64-bit pointers and longs


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.48 05-Mar-2022 jsg

remove fddi leftover
no binary change


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.47 19-Jan-2021 mvs

nfs/nfs_boot.c: convert ifunit() to if_unit(9)

ok dlg@


Revision tags: OPENBSD_6_8_BASE
# 1.46 24-Aug-2020 mvs

According the code `nfsbootdevname' is always set to network device name
we expected. Remove the `else' path from nfs_boot_init(). If
`nfsbootdevname' is not set something goes wrong and this is the panic
condition. Also we exclude the case where we can get `ifp' which we don't
expect.

OK mpi@


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.45 30-Jul-2018 mpi

Use FNONBLOCK instead of SS_NBIO to check/indicate that the I/O mode
for sockets is non-blocking.

This allows us to G/C SS_NBIO. Having to keep the two flags in sync
in a mp-safe way is complicated.

This change introduce a behavior change in sosplice(), it can now
always block. However this should not matter much due to the socket
lock being taken beforhand.

ok bluhm@, benno@, visa@


Revision tags: OPENBSD_6_3_BASE
# 1.44 14-Nov-2017 tb

Push the NET_LOCK into ifioctl() and use the NET_RLOCK in ifioctl_get().
In particular, this allows SIOCGIF* requests to run in parallel.

lots of help & ok mpi, ok visa, sashan


Revision tags: OPENBSD_6_2_BASE
# 1.43 11-Aug-2017 mpi

Remove NET_LOCK()'s argument.

Tested by Hrvoje Popovski, ok bluhm@


# 1.42 19-Jul-2017 claudio

If second xdr_string_encode() fails in bp_getfile() m_freem() m since
this mbuf was allocated by the first call. Fixes possible memory leak.
Found by Ilja Van Sprundel
OK bluhm@ deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.41 19-Dec-2016 mpi

Introduce the NET_LOCK() a rwlock used to serialize accesses to the parts
of the network stack that are not yet ready to be executed in parallel or
where new sleeping points are not possible.

This first pass replace all the entry points leading to ip_output(). This
is done to not introduce new sleeping points when trying to acquire ART's
write lock, needed when a new L2 entry is created via the RT_RESOLVE.

Inputs from and ok bluhm@, ok dlg@


# 1.40 22-Nov-2016 mpi

Enforce that ifioctl() is called at IPL_SOFTNET.

This will allow us to keep locking simple as soon as we trade
splsoftnet() for a rwlock.

ok bluhm@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.39 01-Sep-2015 bluhm

Replace sockaddr casts with the proper satosin(), ... calls.
From David Hill; OK mpi@; tested kspillner@; tweaks bluhm@


# 1.38 14-Aug-2015 bluhm

Replace sockaddr casts with the proper satosin() or satosin6() calls.
From David Hill; OK mpi@


Revision tags: OPENBSD_5_8_BASE
# 1.37 15-Jul-2015 deraadt

m_freem() can handle NULL, do not check for this condition beforehands.
ok stsp mpi


Revision tags: OPENBSD_5_7_BASE
# 1.36 05-Dec-2014 mpi

Explicitly include <net/if_var.h> instead of pulling it in <net/if.h>.

ok mikeb@, krw@, bluhm@, tedu@


# 1.35 14-Nov-2014 tedu

bzero -> memset


# 1.34 14-Sep-2014 jsg

remove uneeded proc.h includes
ok mpi@ kspillner@


# 1.33 08-Sep-2014 jsg

remove uneeded route.h includes
ok miod@ mpi@


Revision tags: OPENBSD_5_6_BASE
# 1.32 07-May-2014 mpi

Remove the last hacks concerning the global list of IPv4 addresses in the
source address selection logic.

These hacks were only relevant for the NFS diskless boot code in order to
pick the local broadcast address of the only configured interface. So, be
explicit and set this address directly.

Tested by florian@, ok henning@, beck@, chrisz@


# 1.31 20-Mar-2014 mpi

Kill NFS_BOOT_GATEWAY, ok deraadt@


Revision tags: OPENBSD_5_5_BASE
# 1.30 11-Nov-2013 mpi

Replace most of our formating functions to convert IPv4/6 addresses from
network to presentation format to inet_ntop().

The few remaining functions will be soon converted.

ok mikeb@, deraadt@ and moral support from henning@


# 1.29 20-Sep-2013 fgsch

Add support for root on nfs using v3. Code adapted from NetBSD.
Tested on sparc by miod, octeon by aalm and armv7 by me.
miod ok.


# 1.28 12-Sep-2013 deraadt

typo; Eivind Evensen


Revision tags: OPENBSD_5_4_BASE
# 1.27 22-May-2013 mpi

Use SIOCAIFADDR rather than SIOCSIFADDR to set the address.

ok mikeb@, claudio@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.26 03-Apr-2010 krw

Don't return 0 if error is set to EBADRPC. Found by jsg@ and clang.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE
# 1.25 19-Oct-2009 jsg

antsy
no binary change apart from nfsm_reqhead() which is clearly correct.

ok thib@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.24 11-Jun-2008 blambert

Canonical for() -> queue.h FOREACH macro conversions.
Also, it is historical practice to #include <sys/queue.h>
when using queue.h macros.

ok thib@ krw@

special thanks to krw@ for reminders vice violence


# 1.23 27-May-2008 deraadt

be much more clear about revarp failures; ok miod


# 1.22 20-May-2008 claudio

Fix last commit, it is rtrequest1() and not rtrequest(). Lucky me it seems
that the code is ifdef-ed out all the time.


# 1.21 09-May-2008 claudio

Another rtrequest() rtrequest1() replacement.
OK henning@


# 1.20 31-Mar-2008 deraadt

Refine "netboot" interface group semantics to indicate the interface we
booted from to the most precision; preferring the boot device, or if that
is not known, the root device
discussed with miod and reyk
tested by beck


# 1.19 19-Mar-2008 deraadt

label all interfaces we netboot from in group "netboot", in a MI fashion
ok miod


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.18 17-Jun-2006 henning

adopt to extended rtrequest / rtalloc1 api


# 1.17 26-May-2006 deraadt

prettier printing


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE
# 1.16 04-Nov-2004 pedro

implememtation -> implementation


Revision tags: OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
# 1.15 02-Jun-2002 deraadt

correct fake nfs_boot_getfh(); ski@wuhjuhbuh.2y.net


Revision tags: OPENBSD_3_1_BASE
# 1.14 14-Mar-2002 millert

First round of __P removal in sys


# 1.13 16-Jan-2002 ericj

use queue.h macro's
remove register


Revision tags: UBC_BASE
# 1.12 14-Nov-2001 mickey

branches: 1.12.2;
allow swaples diskless configs; deradt@ ok


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE SMP_BASE kame_19991208
# 1.11 03-Jan-1999 deraadt

branches: 1.11.6;
print addresses using inet_ntoa ( )


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE
# 1.10 22-Jan-1997 deraadt

get the ethernet/fddi issue half right. This needs to be fixed better


# 1.9 20-Jan-1997 graichen

better use (NETHER == 0) instead of NETHER == 0


# 1.8 20-Jan-1997 graichen

replace #ifndef NFSCLIENT with #if !defined(NFSCLIENT) || NETHER == 0
because revarpwhoami is defined in if_ether.c and netbooting without
an ethernet card is very unusual :-)

p.s.: seems like nobody uses OpenBSD in machines without a network
card - because due to this it was'nt possible to build a kernel for
such a configuration ...


# 1.7 20-Oct-1996 briggs

Fix panic message if NFSCLIENT is not defined.


# 1.6 20-Oct-1996 briggs

Make support for booting over NFS dependent on NFSCLIENT instead of NETHER.
Suggested in a NetBSD PR from Paul Goyette.


Revision tags: OPENBSD_2_0_BASE
# 1.5 10-May-1996 deraadt

if_name/if_unit -> if_xname/if_softc


# 1.4 31-Mar-1996 mickey

From NetBSD: NFSv3 import (tomorrow's Net's kernel)
Open's patches kept in. i'll possibly take a look at Lite2 soon,
is there smth usefull ?..


# 1.3 29-Feb-1996 niklas

From NetBSD: merge with 960217 (still NFSv2)


# 1.2 21-Dec-1995 deraadt

from cgd; handle 64-bit pointers and longs


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.47 19-Jan-2021 mvs

nfs/nfs_boot.c: convert ifunit() to if_unit(9)

ok dlg@


Revision tags: OPENBSD_6_8_BASE
# 1.46 24-Aug-2020 mvs

According the code `nfsbootdevname' is always set to network device name
we expected. Remove the `else' path from nfs_boot_init(). If
`nfsbootdevname' is not set something goes wrong and this is the panic
condition. Also we exclude the case where we can get `ifp' which we don't
expect.

OK mpi@


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.45 30-Jul-2018 mpi

Use FNONBLOCK instead of SS_NBIO to check/indicate that the I/O mode
for sockets is non-blocking.

This allows us to G/C SS_NBIO. Having to keep the two flags in sync
in a mp-safe way is complicated.

This change introduce a behavior change in sosplice(), it can now
always block. However this should not matter much due to the socket
lock being taken beforhand.

ok bluhm@, benno@, visa@


Revision tags: OPENBSD_6_3_BASE
# 1.44 14-Nov-2017 tb

Push the NET_LOCK into ifioctl() and use the NET_RLOCK in ifioctl_get().
In particular, this allows SIOCGIF* requests to run in parallel.

lots of help & ok mpi, ok visa, sashan


Revision tags: OPENBSD_6_2_BASE
# 1.43 11-Aug-2017 mpi

Remove NET_LOCK()'s argument.

Tested by Hrvoje Popovski, ok bluhm@


# 1.42 19-Jul-2017 claudio

If second xdr_string_encode() fails in bp_getfile() m_freem() m since
this mbuf was allocated by the first call. Fixes possible memory leak.
Found by Ilja Van Sprundel
OK bluhm@ deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.41 19-Dec-2016 mpi

Introduce the NET_LOCK() a rwlock used to serialize accesses to the parts
of the network stack that are not yet ready to be executed in parallel or
where new sleeping points are not possible.

This first pass replace all the entry points leading to ip_output(). This
is done to not introduce new sleeping points when trying to acquire ART's
write lock, needed when a new L2 entry is created via the RT_RESOLVE.

Inputs from and ok bluhm@, ok dlg@


# 1.40 22-Nov-2016 mpi

Enforce that ifioctl() is called at IPL_SOFTNET.

This will allow us to keep locking simple as soon as we trade
splsoftnet() for a rwlock.

ok bluhm@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.39 01-Sep-2015 bluhm

Replace sockaddr casts with the proper satosin(), ... calls.
From David Hill; OK mpi@; tested kspillner@; tweaks bluhm@


# 1.38 14-Aug-2015 bluhm

Replace sockaddr casts with the proper satosin() or satosin6() calls.
From David Hill; OK mpi@


Revision tags: OPENBSD_5_8_BASE
# 1.37 15-Jul-2015 deraadt

m_freem() can handle NULL, do not check for this condition beforehands.
ok stsp mpi


Revision tags: OPENBSD_5_7_BASE
# 1.36 05-Dec-2014 mpi

Explicitly include <net/if_var.h> instead of pulling it in <net/if.h>.

ok mikeb@, krw@, bluhm@, tedu@


# 1.35 14-Nov-2014 tedu

bzero -> memset


# 1.34 14-Sep-2014 jsg

remove uneeded proc.h includes
ok mpi@ kspillner@


# 1.33 08-Sep-2014 jsg

remove uneeded route.h includes
ok miod@ mpi@


Revision tags: OPENBSD_5_6_BASE
# 1.32 07-May-2014 mpi

Remove the last hacks concerning the global list of IPv4 addresses in the
source address selection logic.

These hacks were only relevant for the NFS diskless boot code in order to
pick the local broadcast address of the only configured interface. So, be
explicit and set this address directly.

Tested by florian@, ok henning@, beck@, chrisz@


# 1.31 20-Mar-2014 mpi

Kill NFS_BOOT_GATEWAY, ok deraadt@


Revision tags: OPENBSD_5_5_BASE
# 1.30 11-Nov-2013 mpi

Replace most of our formating functions to convert IPv4/6 addresses from
network to presentation format to inet_ntop().

The few remaining functions will be soon converted.

ok mikeb@, deraadt@ and moral support from henning@


# 1.29 20-Sep-2013 fgsch

Add support for root on nfs using v3. Code adapted from NetBSD.
Tested on sparc by miod, octeon by aalm and armv7 by me.
miod ok.


# 1.28 12-Sep-2013 deraadt

typo; Eivind Evensen


Revision tags: OPENBSD_5_4_BASE
# 1.27 22-May-2013 mpi

Use SIOCAIFADDR rather than SIOCSIFADDR to set the address.

ok mikeb@, claudio@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.26 03-Apr-2010 krw

Don't return 0 if error is set to EBADRPC. Found by jsg@ and clang.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE
# 1.25 19-Oct-2009 jsg

antsy
no binary change apart from nfsm_reqhead() which is clearly correct.

ok thib@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.24 11-Jun-2008 blambert

Canonical for() -> queue.h FOREACH macro conversions.
Also, it is historical practice to #include <sys/queue.h>
when using queue.h macros.

ok thib@ krw@

special thanks to krw@ for reminders vice violence


# 1.23 27-May-2008 deraadt

be much more clear about revarp failures; ok miod


# 1.22 20-May-2008 claudio

Fix last commit, it is rtrequest1() and not rtrequest(). Lucky me it seems
that the code is ifdef-ed out all the time.


# 1.21 09-May-2008 claudio

Another rtrequest() rtrequest1() replacement.
OK henning@


# 1.20 31-Mar-2008 deraadt

Refine "netboot" interface group semantics to indicate the interface we
booted from to the most precision; preferring the boot device, or if that
is not known, the root device
discussed with miod and reyk
tested by beck


# 1.19 19-Mar-2008 deraadt

label all interfaces we netboot from in group "netboot", in a MI fashion
ok miod


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.18 17-Jun-2006 henning

adopt to extended rtrequest / rtalloc1 api


# 1.17 26-May-2006 deraadt

prettier printing


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE
# 1.16 04-Nov-2004 pedro

implememtation -> implementation


Revision tags: OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
# 1.15 02-Jun-2002 deraadt

correct fake nfs_boot_getfh(); ski@wuhjuhbuh.2y.net


Revision tags: OPENBSD_3_1_BASE
# 1.14 14-Mar-2002 millert

First round of __P removal in sys


# 1.13 16-Jan-2002 ericj

use queue.h macro's
remove register


Revision tags: UBC_BASE
# 1.12 14-Nov-2001 mickey

branches: 1.12.2;
allow swaples diskless configs; deradt@ ok


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE SMP_BASE kame_19991208
# 1.11 03-Jan-1999 deraadt

branches: 1.11.6;
print addresses using inet_ntoa ( )


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE
# 1.10 22-Jan-1997 deraadt

get the ethernet/fddi issue half right. This needs to be fixed better


# 1.9 20-Jan-1997 graichen

better use (NETHER == 0) instead of NETHER == 0


# 1.8 20-Jan-1997 graichen

replace #ifndef NFSCLIENT with #if !defined(NFSCLIENT) || NETHER == 0
because revarpwhoami is defined in if_ether.c and netbooting without
an ethernet card is very unusual :-)

p.s.: seems like nobody uses OpenBSD in machines without a network
card - because due to this it was'nt possible to build a kernel for
such a configuration ...


# 1.7 20-Oct-1996 briggs

Fix panic message if NFSCLIENT is not defined.


# 1.6 20-Oct-1996 briggs

Make support for booting over NFS dependent on NFSCLIENT instead of NETHER.
Suggested in a NetBSD PR from Paul Goyette.


Revision tags: OPENBSD_2_0_BASE
# 1.5 10-May-1996 deraadt

if_name/if_unit -> if_xname/if_softc


# 1.4 31-Mar-1996 mickey

From NetBSD: NFSv3 import (tomorrow's Net's kernel)
Open's patches kept in. i'll possibly take a look at Lite2 soon,
is there smth usefull ?..


# 1.3 29-Feb-1996 niklas

From NetBSD: merge with 960217 (still NFSv2)


# 1.2 21-Dec-1995 deraadt

from cgd; handle 64-bit pointers and longs


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.46 24-Aug-2020 mvs

According the code `nfsbootdevname' is always set to network device name
we expected. Remove the `else' path from nfs_boot_init(). If
`nfsbootdevname' is not set something goes wrong and this is the panic
condition. Also we exclude the case where we can get `ifp' which we don't
expect.

OK mpi@


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.45 30-Jul-2018 mpi

Use FNONBLOCK instead of SS_NBIO to check/indicate that the I/O mode
for sockets is non-blocking.

This allows us to G/C SS_NBIO. Having to keep the two flags in sync
in a mp-safe way is complicated.

This change introduce a behavior change in sosplice(), it can now
always block. However this should not matter much due to the socket
lock being taken beforhand.

ok bluhm@, benno@, visa@


Revision tags: OPENBSD_6_3_BASE
# 1.44 14-Nov-2017 tb

Push the NET_LOCK into ifioctl() and use the NET_RLOCK in ifioctl_get().
In particular, this allows SIOCGIF* requests to run in parallel.

lots of help & ok mpi, ok visa, sashan


Revision tags: OPENBSD_6_2_BASE
# 1.43 11-Aug-2017 mpi

Remove NET_LOCK()'s argument.

Tested by Hrvoje Popovski, ok bluhm@


# 1.42 19-Jul-2017 claudio

If second xdr_string_encode() fails in bp_getfile() m_freem() m since
this mbuf was allocated by the first call. Fixes possible memory leak.
Found by Ilja Van Sprundel
OK bluhm@ deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.41 19-Dec-2016 mpi

Introduce the NET_LOCK() a rwlock used to serialize accesses to the parts
of the network stack that are not yet ready to be executed in parallel or
where new sleeping points are not possible.

This first pass replace all the entry points leading to ip_output(). This
is done to not introduce new sleeping points when trying to acquire ART's
write lock, needed when a new L2 entry is created via the RT_RESOLVE.

Inputs from and ok bluhm@, ok dlg@


# 1.40 22-Nov-2016 mpi

Enforce that ifioctl() is called at IPL_SOFTNET.

This will allow us to keep locking simple as soon as we trade
splsoftnet() for a rwlock.

ok bluhm@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.39 01-Sep-2015 bluhm

Replace sockaddr casts with the proper satosin(), ... calls.
From David Hill; OK mpi@; tested kspillner@; tweaks bluhm@


# 1.38 14-Aug-2015 bluhm

Replace sockaddr casts with the proper satosin() or satosin6() calls.
From David Hill; OK mpi@


Revision tags: OPENBSD_5_8_BASE
# 1.37 15-Jul-2015 deraadt

m_freem() can handle NULL, do not check for this condition beforehands.
ok stsp mpi


Revision tags: OPENBSD_5_7_BASE
# 1.36 05-Dec-2014 mpi

Explicitly include <net/if_var.h> instead of pulling it in <net/if.h>.

ok mikeb@, krw@, bluhm@, tedu@


# 1.35 14-Nov-2014 tedu

bzero -> memset


# 1.34 14-Sep-2014 jsg

remove uneeded proc.h includes
ok mpi@ kspillner@


# 1.33 08-Sep-2014 jsg

remove uneeded route.h includes
ok miod@ mpi@


Revision tags: OPENBSD_5_6_BASE
# 1.32 07-May-2014 mpi

Remove the last hacks concerning the global list of IPv4 addresses in the
source address selection logic.

These hacks were only relevant for the NFS diskless boot code in order to
pick the local broadcast address of the only configured interface. So, be
explicit and set this address directly.

Tested by florian@, ok henning@, beck@, chrisz@


# 1.31 20-Mar-2014 mpi

Kill NFS_BOOT_GATEWAY, ok deraadt@


Revision tags: OPENBSD_5_5_BASE
# 1.30 11-Nov-2013 mpi

Replace most of our formating functions to convert IPv4/6 addresses from
network to presentation format to inet_ntop().

The few remaining functions will be soon converted.

ok mikeb@, deraadt@ and moral support from henning@


# 1.29 20-Sep-2013 fgsch

Add support for root on nfs using v3. Code adapted from NetBSD.
Tested on sparc by miod, octeon by aalm and armv7 by me.
miod ok.


# 1.28 12-Sep-2013 deraadt

typo; Eivind Evensen


Revision tags: OPENBSD_5_4_BASE
# 1.27 22-May-2013 mpi

Use SIOCAIFADDR rather than SIOCSIFADDR to set the address.

ok mikeb@, claudio@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.26 03-Apr-2010 krw

Don't return 0 if error is set to EBADRPC. Found by jsg@ and clang.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE
# 1.25 19-Oct-2009 jsg

antsy
no binary change apart from nfsm_reqhead() which is clearly correct.

ok thib@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.24 11-Jun-2008 blambert

Canonical for() -> queue.h FOREACH macro conversions.
Also, it is historical practice to #include <sys/queue.h>
when using queue.h macros.

ok thib@ krw@

special thanks to krw@ for reminders vice violence


# 1.23 27-May-2008 deraadt

be much more clear about revarp failures; ok miod


# 1.22 20-May-2008 claudio

Fix last commit, it is rtrequest1() and not rtrequest(). Lucky me it seems
that the code is ifdef-ed out all the time.


# 1.21 09-May-2008 claudio

Another rtrequest() rtrequest1() replacement.
OK henning@


# 1.20 31-Mar-2008 deraadt

Refine "netboot" interface group semantics to indicate the interface we
booted from to the most precision; preferring the boot device, or if that
is not known, the root device
discussed with miod and reyk
tested by beck


# 1.19 19-Mar-2008 deraadt

label all interfaces we netboot from in group "netboot", in a MI fashion
ok miod


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.18 17-Jun-2006 henning

adopt to extended rtrequest / rtalloc1 api


# 1.17 26-May-2006 deraadt

prettier printing


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE
# 1.16 04-Nov-2004 pedro

implememtation -> implementation


Revision tags: OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
# 1.15 02-Jun-2002 deraadt

correct fake nfs_boot_getfh(); ski@wuhjuhbuh.2y.net


Revision tags: OPENBSD_3_1_BASE
# 1.14 14-Mar-2002 millert

First round of __P removal in sys


# 1.13 16-Jan-2002 ericj

use queue.h macro's
remove register


Revision tags: UBC_BASE
# 1.12 14-Nov-2001 mickey

branches: 1.12.2;
allow swaples diskless configs; deradt@ ok


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE SMP_BASE kame_19991208
# 1.11 03-Jan-1999 deraadt

branches: 1.11.6;
print addresses using inet_ntoa ( )


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE
# 1.10 22-Jan-1997 deraadt

get the ethernet/fddi issue half right. This needs to be fixed better


# 1.9 20-Jan-1997 graichen

better use (NETHER == 0) instead of NETHER == 0


# 1.8 20-Jan-1997 graichen

replace #ifndef NFSCLIENT with #if !defined(NFSCLIENT) || NETHER == 0
because revarpwhoami is defined in if_ether.c and netbooting without
an ethernet card is very unusual :-)

p.s.: seems like nobody uses OpenBSD in machines without a network
card - because due to this it was'nt possible to build a kernel for
such a configuration ...


# 1.7 20-Oct-1996 briggs

Fix panic message if NFSCLIENT is not defined.


# 1.6 20-Oct-1996 briggs

Make support for booting over NFS dependent on NFSCLIENT instead of NETHER.
Suggested in a NetBSD PR from Paul Goyette.


Revision tags: OPENBSD_2_0_BASE
# 1.5 10-May-1996 deraadt

if_name/if_unit -> if_xname/if_softc


# 1.4 31-Mar-1996 mickey

From NetBSD: NFSv3 import (tomorrow's Net's kernel)
Open's patches kept in. i'll possibly take a look at Lite2 soon,
is there smth usefull ?..


# 1.3 29-Feb-1996 niklas

From NetBSD: merge with 960217 (still NFSv2)


# 1.2 21-Dec-1995 deraadt

from cgd; handle 64-bit pointers and longs


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.45 30-Jul-2018 mpi

Use FNONBLOCK instead of SS_NBIO to check/indicate that the I/O mode
for sockets is non-blocking.

This allows us to G/C SS_NBIO. Having to keep the two flags in sync
in a mp-safe way is complicated.

This change introduce a behavior change in sosplice(), it can now
always block. However this should not matter much due to the socket
lock being taken beforhand.

ok bluhm@, benno@, visa@


Revision tags: OPENBSD_6_3_BASE
# 1.44 14-Nov-2017 tb

Push the NET_LOCK into ifioctl() and use the NET_RLOCK in ifioctl_get().
In particular, this allows SIOCGIF* requests to run in parallel.

lots of help & ok mpi, ok visa, sashan


Revision tags: OPENBSD_6_2_BASE
# 1.43 11-Aug-2017 mpi

Remove NET_LOCK()'s argument.

Tested by Hrvoje Popovski, ok bluhm@


# 1.42 19-Jul-2017 claudio

If second xdr_string_encode() fails in bp_getfile() m_freem() m since
this mbuf was allocated by the first call. Fixes possible memory leak.
Found by Ilja Van Sprundel
OK bluhm@ deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.41 19-Dec-2016 mpi

Introduce the NET_LOCK() a rwlock used to serialize accesses to the parts
of the network stack that are not yet ready to be executed in parallel or
where new sleeping points are not possible.

This first pass replace all the entry points leading to ip_output(). This
is done to not introduce new sleeping points when trying to acquire ART's
write lock, needed when a new L2 entry is created via the RT_RESOLVE.

Inputs from and ok bluhm@, ok dlg@


# 1.40 22-Nov-2016 mpi

Enforce that ifioctl() is called at IPL_SOFTNET.

This will allow us to keep locking simple as soon as we trade
splsoftnet() for a rwlock.

ok bluhm@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.39 01-Sep-2015 bluhm

Replace sockaddr casts with the proper satosin(), ... calls.
From David Hill; OK mpi@; tested kspillner@; tweaks bluhm@


# 1.38 14-Aug-2015 bluhm

Replace sockaddr casts with the proper satosin() or satosin6() calls.
From David Hill; OK mpi@


Revision tags: OPENBSD_5_8_BASE
# 1.37 15-Jul-2015 deraadt

m_freem() can handle NULL, do not check for this condition beforehands.
ok stsp mpi


Revision tags: OPENBSD_5_7_BASE
# 1.36 05-Dec-2014 mpi

Explicitly include <net/if_var.h> instead of pulling it in <net/if.h>.

ok mikeb@, krw@, bluhm@, tedu@


# 1.35 14-Nov-2014 tedu

bzero -> memset


# 1.34 14-Sep-2014 jsg

remove uneeded proc.h includes
ok mpi@ kspillner@


# 1.33 08-Sep-2014 jsg

remove uneeded route.h includes
ok miod@ mpi@


Revision tags: OPENBSD_5_6_BASE
# 1.32 07-May-2014 mpi

Remove the last hacks concerning the global list of IPv4 addresses in the
source address selection logic.

These hacks were only relevant for the NFS diskless boot code in order to
pick the local broadcast address of the only configured interface. So, be
explicit and set this address directly.

Tested by florian@, ok henning@, beck@, chrisz@


# 1.31 20-Mar-2014 mpi

Kill NFS_BOOT_GATEWAY, ok deraadt@


Revision tags: OPENBSD_5_5_BASE
# 1.30 11-Nov-2013 mpi

Replace most of our formating functions to convert IPv4/6 addresses from
network to presentation format to inet_ntop().

The few remaining functions will be soon converted.

ok mikeb@, deraadt@ and moral support from henning@


# 1.29 20-Sep-2013 fgsch

Add support for root on nfs using v3. Code adapted from NetBSD.
Tested on sparc by miod, octeon by aalm and armv7 by me.
miod ok.


# 1.28 12-Sep-2013 deraadt

typo; Eivind Evensen


Revision tags: OPENBSD_5_4_BASE
# 1.27 22-May-2013 mpi

Use SIOCAIFADDR rather than SIOCSIFADDR to set the address.

ok mikeb@, claudio@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.26 03-Apr-2010 krw

Don't return 0 if error is set to EBADRPC. Found by jsg@ and clang.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE
# 1.25 19-Oct-2009 jsg

antsy
no binary change apart from nfsm_reqhead() which is clearly correct.

ok thib@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.24 11-Jun-2008 blambert

Canonical for() -> queue.h FOREACH macro conversions.
Also, it is historical practice to #include <sys/queue.h>
when using queue.h macros.

ok thib@ krw@

special thanks to krw@ for reminders vice violence


# 1.23 27-May-2008 deraadt

be much more clear about revarp failures; ok miod


# 1.22 20-May-2008 claudio

Fix last commit, it is rtrequest1() and not rtrequest(). Lucky me it seems
that the code is ifdef-ed out all the time.


# 1.21 09-May-2008 claudio

Another rtrequest() rtrequest1() replacement.
OK henning@


# 1.20 31-Mar-2008 deraadt

Refine "netboot" interface group semantics to indicate the interface we
booted from to the most precision; preferring the boot device, or if that
is not known, the root device
discussed with miod and reyk
tested by beck


# 1.19 19-Mar-2008 deraadt

label all interfaces we netboot from in group "netboot", in a MI fashion
ok miod


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.18 17-Jun-2006 henning

adopt to extended rtrequest / rtalloc1 api


# 1.17 26-May-2006 deraadt

prettier printing


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE
# 1.16 04-Nov-2004 pedro

implememtation -> implementation


Revision tags: OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
# 1.15 02-Jun-2002 deraadt

correct fake nfs_boot_getfh(); ski@wuhjuhbuh.2y.net


Revision tags: OPENBSD_3_1_BASE
# 1.14 14-Mar-2002 millert

First round of __P removal in sys


# 1.13 16-Jan-2002 ericj

use queue.h macro's
remove register


Revision tags: UBC_BASE
# 1.12 14-Nov-2001 mickey

branches: 1.12.2;
allow swaples diskless configs; deradt@ ok


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE SMP_BASE kame_19991208
# 1.11 03-Jan-1999 deraadt

branches: 1.11.6;
print addresses using inet_ntoa ( )


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE
# 1.10 22-Jan-1997 deraadt

get the ethernet/fddi issue half right. This needs to be fixed better


# 1.9 20-Jan-1997 graichen

better use (NETHER == 0) instead of NETHER == 0


# 1.8 20-Jan-1997 graichen

replace #ifndef NFSCLIENT with #if !defined(NFSCLIENT) || NETHER == 0
because revarpwhoami is defined in if_ether.c and netbooting without
an ethernet card is very unusual :-)

p.s.: seems like nobody uses OpenBSD in machines without a network
card - because due to this it was'nt possible to build a kernel for
such a configuration ...


# 1.7 20-Oct-1996 briggs

Fix panic message if NFSCLIENT is not defined.


# 1.6 20-Oct-1996 briggs

Make support for booting over NFS dependent on NFSCLIENT instead of NETHER.
Suggested in a NetBSD PR from Paul Goyette.


Revision tags: OPENBSD_2_0_BASE
# 1.5 10-May-1996 deraadt

if_name/if_unit -> if_xname/if_softc


# 1.4 31-Mar-1996 mickey

From NetBSD: NFSv3 import (tomorrow's Net's kernel)
Open's patches kept in. i'll possibly take a look at Lite2 soon,
is there smth usefull ?..


# 1.3 29-Feb-1996 niklas

From NetBSD: merge with 960217 (still NFSv2)


# 1.2 21-Dec-1995 deraadt

from cgd; handle 64-bit pointers and longs


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.44 14-Nov-2017 tb

Push the NET_LOCK into ifioctl() and use the NET_RLOCK in ifioctl_get().
In particular, this allows SIOCGIF* requests to run in parallel.

lots of help & ok mpi, ok visa, sashan


Revision tags: OPENBSD_6_2_BASE
# 1.43 11-Aug-2017 mpi

Remove NET_LOCK()'s argument.

Tested by Hrvoje Popovski, ok bluhm@


# 1.42 19-Jul-2017 claudio

If second xdr_string_encode() fails in bp_getfile() m_freem() m since
this mbuf was allocated by the first call. Fixes possible memory leak.
Found by Ilja Van Sprundel
OK bluhm@ deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.41 19-Dec-2016 mpi

Introduce the NET_LOCK() a rwlock used to serialize accesses to the parts
of the network stack that are not yet ready to be executed in parallel or
where new sleeping points are not possible.

This first pass replace all the entry points leading to ip_output(). This
is done to not introduce new sleeping points when trying to acquire ART's
write lock, needed when a new L2 entry is created via the RT_RESOLVE.

Inputs from and ok bluhm@, ok dlg@


# 1.40 22-Nov-2016 mpi

Enforce that ifioctl() is called at IPL_SOFTNET.

This will allow us to keep locking simple as soon as we trade
splsoftnet() for a rwlock.

ok bluhm@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.39 01-Sep-2015 bluhm

Replace sockaddr casts with the proper satosin(), ... calls.
From David Hill; OK mpi@; tested kspillner@; tweaks bluhm@


# 1.38 14-Aug-2015 bluhm

Replace sockaddr casts with the proper satosin() or satosin6() calls.
From David Hill; OK mpi@


Revision tags: OPENBSD_5_8_BASE
# 1.37 15-Jul-2015 deraadt

m_freem() can handle NULL, do not check for this condition beforehands.
ok stsp mpi


Revision tags: OPENBSD_5_7_BASE
# 1.36 05-Dec-2014 mpi

Explicitly include <net/if_var.h> instead of pulling it in <net/if.h>.

ok mikeb@, krw@, bluhm@, tedu@


# 1.35 14-Nov-2014 tedu

bzero -> memset


# 1.34 14-Sep-2014 jsg

remove uneeded proc.h includes
ok mpi@ kspillner@


# 1.33 08-Sep-2014 jsg

remove uneeded route.h includes
ok miod@ mpi@


Revision tags: OPENBSD_5_6_BASE
# 1.32 07-May-2014 mpi

Remove the last hacks concerning the global list of IPv4 addresses in the
source address selection logic.

These hacks were only relevant for the NFS diskless boot code in order to
pick the local broadcast address of the only configured interface. So, be
explicit and set this address directly.

Tested by florian@, ok henning@, beck@, chrisz@


# 1.31 20-Mar-2014 mpi

Kill NFS_BOOT_GATEWAY, ok deraadt@


Revision tags: OPENBSD_5_5_BASE
# 1.30 11-Nov-2013 mpi

Replace most of our formating functions to convert IPv4/6 addresses from
network to presentation format to inet_ntop().

The few remaining functions will be soon converted.

ok mikeb@, deraadt@ and moral support from henning@


# 1.29 20-Sep-2013 fgsch

Add support for root on nfs using v3. Code adapted from NetBSD.
Tested on sparc by miod, octeon by aalm and armv7 by me.
miod ok.


# 1.28 12-Sep-2013 deraadt

typo; Eivind Evensen


Revision tags: OPENBSD_5_4_BASE
# 1.27 22-May-2013 mpi

Use SIOCAIFADDR rather than SIOCSIFADDR to set the address.

ok mikeb@, claudio@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.26 03-Apr-2010 krw

Don't return 0 if error is set to EBADRPC. Found by jsg@ and clang.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE
# 1.25 19-Oct-2009 jsg

antsy
no binary change apart from nfsm_reqhead() which is clearly correct.

ok thib@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.24 11-Jun-2008 blambert

Canonical for() -> queue.h FOREACH macro conversions.
Also, it is historical practice to #include <sys/queue.h>
when using queue.h macros.

ok thib@ krw@

special thanks to krw@ for reminders vice violence


# 1.23 27-May-2008 deraadt

be much more clear about revarp failures; ok miod


# 1.22 20-May-2008 claudio

Fix last commit, it is rtrequest1() and not rtrequest(). Lucky me it seems
that the code is ifdef-ed out all the time.


# 1.21 09-May-2008 claudio

Another rtrequest() rtrequest1() replacement.
OK henning@


# 1.20 31-Mar-2008 deraadt

Refine "netboot" interface group semantics to indicate the interface we
booted from to the most precision; preferring the boot device, or if that
is not known, the root device
discussed with miod and reyk
tested by beck


# 1.19 19-Mar-2008 deraadt

label all interfaces we netboot from in group "netboot", in a MI fashion
ok miod


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.18 17-Jun-2006 henning

adopt to extended rtrequest / rtalloc1 api


# 1.17 26-May-2006 deraadt

prettier printing


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE
# 1.16 04-Nov-2004 pedro

implememtation -> implementation


Revision tags: OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
# 1.15 02-Jun-2002 deraadt

correct fake nfs_boot_getfh(); ski@wuhjuhbuh.2y.net


Revision tags: OPENBSD_3_1_BASE
# 1.14 14-Mar-2002 millert

First round of __P removal in sys


# 1.13 16-Jan-2002 ericj

use queue.h macro's
remove register


Revision tags: UBC_BASE
# 1.12 14-Nov-2001 mickey

branches: 1.12.2;
allow swaples diskless configs; deradt@ ok


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE SMP_BASE kame_19991208
# 1.11 03-Jan-1999 deraadt

branches: 1.11.6;
print addresses using inet_ntoa ( )


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE
# 1.10 22-Jan-1997 deraadt

get the ethernet/fddi issue half right. This needs to be fixed better


# 1.9 20-Jan-1997 graichen

better use (NETHER == 0) instead of NETHER == 0


# 1.8 20-Jan-1997 graichen

replace #ifndef NFSCLIENT with #if !defined(NFSCLIENT) || NETHER == 0
because revarpwhoami is defined in if_ether.c and netbooting without
an ethernet card is very unusual :-)

p.s.: seems like nobody uses OpenBSD in machines without a network
card - because due to this it was'nt possible to build a kernel for
such a configuration ...


# 1.7 20-Oct-1996 briggs

Fix panic message if NFSCLIENT is not defined.


# 1.6 20-Oct-1996 briggs

Make support for booting over NFS dependent on NFSCLIENT instead of NETHER.
Suggested in a NetBSD PR from Paul Goyette.


Revision tags: OPENBSD_2_0_BASE
# 1.5 10-May-1996 deraadt

if_name/if_unit -> if_xname/if_softc


# 1.4 31-Mar-1996 mickey

From NetBSD: NFSv3 import (tomorrow's Net's kernel)
Open's patches kept in. i'll possibly take a look at Lite2 soon,
is there smth usefull ?..


# 1.3 29-Feb-1996 niklas

From NetBSD: merge with 960217 (still NFSv2)


# 1.2 21-Dec-1995 deraadt

from cgd; handle 64-bit pointers and longs


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision