History log of /netbsd/sys/net/if.c (Results 1 – 25 of 529)
Revision Date Author Comments
# 449201b8 24-Feb-2023 riastradh <riastradh@NetBSD.org>

sys/net/if.c: Eliminate __HAVE_ATOMIC_AS_MEMBAR conditionals.

Discussed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html


# ea2fb498 25-Nov-2022 msaitoh <msaitoh@NetBSD.org>

KNF. No functional change.


# a399bebb 24-Oct-2022 msaitoh <msaitoh@NetBSD.org>

Make ifq_drops in struct ifqueue and struct ifaltq 64 bit.


# 5ef53291 20-Sep-2022 knakahara <knakahara@NetBSD.org>

Remove routes on an address removal if the routes referencing to the address. Implemented by ozaki-r@n.o.

A route that has a gateway is on a connected route can be invalid if the
connected route is

Remove routes on an address removal if the routes referencing to the address. Implemented by ozaki-r@n.o.

A route that has a gateway is on a connected route can be invalid if the
connected route is deleted, i.e., an associated address is removed.
Traditionally NetBSD doesn't sweep such a route on the address removal. Sending
packets over the route fails with "No route to host". Also the route holds an
orphan ifaddr as rt_ifa that is destructed say by in_purgeaddr.

If the same address is assgined again in such a state, there can be two
different ifaddr objects with the same address. Until recently it's not a
big problem because we can send packets anyway. However after MP-ification
of the network stack, we can't send packets because we strictly check if rt_ifa
(i.e., the (old) ifaddr) is valid.

This change automatically removes such routes on a removal of an associated
address to avoid keeping inconsistent routes.

show more ...


# 42a2659f 03-Sep-2022 thorpej <thorpej@NetBSD.org>

Garbage-collect everything related to struct domain::dom_ifqueues
(except dom_ifqueues itself, until the next kernel version bump).
It's no longer used now that nothing uses the legacy netisr mechani

Garbage-collect everything related to struct domain::dom_ifqueues
(except dom_ifqueues itself, until the next kernel version bump).
It's no longer used now that nothing uses the legacy netisr mechanism.

show more ...


# d10e2ccb 03-Sep-2022 thorpej <thorpej@NetBSD.org>

Garbage-collect the remaining vestiges of netisr.


# c1ffabb4 02-Sep-2022 thorpej <thorpej@NetBSD.org>

Re-factor how pktq_barrier() is issued by if_detach().

Rather than excplicitly referencing ip_pktq and ip6_pktq in if_detach(),
instead add all pktqueues to a global list. This list is then used in

Re-factor how pktq_barrier() is issued by if_detach().

Rather than excplicitly referencing ip_pktq and ip6_pktq in if_detach(),
instead add all pktqueues to a global list. This list is then used in
the new pktq_ifdetach() function to issue a barrier on all pktqueues.

Note that the performance of this list is not critical; it will seldom
be accessed (then pktqueues are created/destroyed and when network
interfaces are detached), and so a simple synchronization strategy using
a rwlock is sufficient.

show more ...


# 75b22e0d 02-Sep-2022 thorpej <thorpej@NetBSD.org>

f_detach(): Drain the protocol input queues before the pr_purgeif()
calls; pktq_barrier() doesn't remove packets from the queue, it waits
for the packets enqueued before the barrier to drain. This,

f_detach(): Drain the protocol input queues before the pr_purgeif()
calls; pktq_barrier() doesn't remove packets from the queue, it waits
for the packets enqueued before the barrier to drain. This, in turn,
may cause the protocols to gain additional references to the interface
that's detaching. By draining the queues first, we ensure that no
additional references will be taken after calling pr_purgeif().

show more ...


# 61127047 02-Sep-2022 thorpej <thorpej@NetBSD.org>

pktqueue: Re-factor sysctl handling.

Provide a new pktq_sysctl_setup() function that attaches standard
pktq sysctl nodes below a specified parent node, with either a
fixed node ID or CTL_CREATE to d

pktqueue: Re-factor sysctl handling.

Provide a new pktq_sysctl_setup() function that attaches standard
pktq sysctl nodes below a specified parent node, with either a
fixed node ID or CTL_CREATE to dynamically assign node IDs. Make
all of the sysctl handlers private to pktqueue.c, and remove the
INET- and INET6-specific pktqueue sysctl code from net/if.c.

show more ...


# b2362dc6 21-Aug-2022 skrll <skrll@NetBSD.org>

Sprinkle more const. NFC.


# e25c960e 21-Aug-2022 skrll <skrll@NetBSD.org>

Sprinkle const. NFC.


# da407efc 21-Aug-2022 skrll <skrll@NetBSD.org>

Style / whitespace.


# aef8a9f4 20-Aug-2022 riastradh <riastradh@NetBSD.org>

ifnet(9): Make sure to use if_timer and if_watchdog at IPL_NET.


# bd79f176 20-Aug-2022 riastradh <riastradh@NetBSD.org>

ifnet(9): On if_deactivate, don't make null if_slowtimo nonnull.

Fixes crash on detach.


# df7d865e 20-Aug-2022 riastradh <riastradh@NetBSD.org>

ifnet(9): Kernel lock for struct ifnet::if_timer.


# a4b8b9db 20-Aug-2022 riastradh <riastradh@NetBSD.org>

ifnet(9): Add sysctl net.interaces.ifN.watchdog.trigger.

For interfaces that use if_watchdog, this forces it to be called at
the next tick.


# 0f5556e3 20-Aug-2022 riastradh <riastradh@NetBSD.org>

ifnet(9): Defer if_watchdog (a.k.a. if_slowtimo) to workqueue.

This is necessary to make mii_down and the *_init/stop routines that
call it to sleep waiting for MII callouts on other CPUs.

Mark the

ifnet(9): Defer if_watchdog (a.k.a. if_slowtimo) to workqueue.

This is necessary to make mii_down and the *_init/stop routines that
call it to sleep waiting for MII callouts on other CPUs.

Mark the workqueue and callout MP-safe; only take the kernel lock
around the callback.

No kernel bump despite change to struct ifnet because the change is
ABI-compatible and using the callout outside net/if.c has never been
kosher.

show more ...


# 84ec4e4e 17-Aug-2022 rillig <rillig@NetBSD.org>

if.c: fix typo in comment


# 0042e03f 29-Jul-2022 skrll <skrll@NetBSD.org>

Fix a typo in a comment.


# 236bdce3 29-Jul-2022 skrll <skrll@NetBSD.org>

KNF a comment


# 9a71b525 11-Jul-2022 skrll <skrll@NetBSD.org>

KNF two comments.


# 69e7c18d 11-Jul-2022 skrll <skrll@NetBSD.org>

Grammar in a comment.


# a97db378 08-Jul-2022 skrll <skrll@NetBSD.org>

alredy -> already


# 6b856c8f 07-Jul-2022 riastradh <riastradh@NetBSD.org>

ifioctl(9): Don't touch ifconf or ifreq until command is validated.

sys_ioctl validates the data pointer according to the command's size
and direction. But userland may ioctl commands other than
OS

ifioctl(9): Don't touch ifconf or ifreq until command is validated.

sys_ioctl validates the data pointer according to the command's size
and direction. But userland may ioctl commands other than
OSIOCGIFCONF or OOSIOCGIFCONF -- and if userland passes an IOC_VOID
command, the argument is passed through verbatim and may be null.

Reported-by: syzbot+19b1bf83e5481273eafc@syzkaller.appspotmail.com
https://syzkaller.appspot.com/bug?id=f4c91a7dcd31901c80d91af6ed01456faf0a7286

Reported-by: syzbot+442c033feb784d055185@syzkaller.appspotmail.com
https://syzkaller.appspot.com/bug?id=4a3a4b92dbe9695046ff17a5474cef52aed23e0b

Reported-by: syzbot+4c87d0cdf7025741ea7a@syzkaller.appspotmail.com
https://syzkaller.appspot.com/bug?id=3e5f42c998e43ad42da40dec3c7873e6aae187e4

show more ...


# 2d52435a 22-May-2022 andvar <andvar@NetBSD.org>

fix various small typos, mainly in comments.


12345678910>>...22