The NetBSD Project

CVS log for src/sys/net/lagg/if_lagg.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / net / lagg

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.48.4.3 / (download) - annotate - [select for diffs], Tue Dec 12 16:45:00 2023 UTC (2 months, 2 weeks ago) by martin
Branch: netbsd-10
CVS Tags: netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2
Changes since 1.48.4.2: +20 -15 lines
Diff to previous 1.48.4.2 (colored) to branchpoint 1.48 (colored) next main 1.49 (colored)

Pull up following revision(s) (requested by yamaguchi in ticket #491):

	sys/net/lagg/if_lagg.c: revision 1.56
	sys/net/lagg/if_lagg.c: revision 1.57
	sbin/ifconfig/lagg.c: revision 1.4

lagg(4): use sadl for lagg(4) configured by a user

lagg(4): eliminate unnecessary reset by the change of if_flags

Fix "ifconfig lagg* lagglacp -maxports" command

This command clears the setting of the maximum number of
lacp active ports. The command was accepted but it did not
work until this change.

Revision 1.57 / (download) - annotate - [select for diffs], Fri Dec 1 09:27:17 2023 UTC (2 months, 4 weeks ago) by yamaguchi
Branch: MAIN
CVS Tags: HEAD
Changes since 1.56: +2 -3 lines
Diff to previous 1.56 (colored)

lagg(4): eliminate unnecessary reset by the change of if_flags

Revision 1.56 / (download) - annotate - [select for diffs], Fri Dec 1 06:18:02 2023 UTC (2 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.55: +20 -14 lines
Diff to previous 1.55 (colored)

lagg(4): use sadl for lagg(4) configured by a user

Revision 1.55 / (download) - annotate - [select for diffs], Tue Nov 28 05:28:37 2023 UTC (3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.54: +4 -4 lines
Diff to previous 1.54 (colored)

lagg(4): Fix missing IFNET_LOCK acquirement

Revision 1.48.4.2 / (download) - annotate - [select for diffs], Mon Nov 27 20:05:57 2023 UTC (3 months ago) by martin
Branch: netbsd-10
Changes since 1.48.4.1: +39 -25 lines
Diff to previous 1.48.4.1 (colored) to branchpoint 1.48 (colored)

Pull up following revision(s) (requested by yamaguchi in ticket #476):

	sys/net/lagg/if_lagg.c: revision 1.52
	sys/net/lagg/if_lagg.c: revision 1.53
	sys/net/lagg/if_lagg_lacp.c: revision 1.26
	sys/net/lagg/if_lagg_lacp.c: revision 1.27

Change LACPDU sending interval by TIMEOUT bit in partner's state

Update sending interval when the partner's state is changed

lagg(4): Fix missing pfil_run_hooks() and bpf_mtap()

Set ETHERCAP_VLAN_HWTAGGING on lagg(4)
that doesn't has physical interfaces

Revision 1.54 / (download) - annotate - [select for diffs], Wed Nov 22 03:49:13 2023 UTC (3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.53: +53 -2 lines
Diff to previous 1.53 (colored)

Set the fastest linkspeed in each physical interface to lagg(4)

Revision 1.53 / (download) - annotate - [select for diffs], Wed Nov 22 03:30:57 2023 UTC (3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.52: +34 -25 lines
Diff to previous 1.52 (colored)

Set ETHERCAP_VLAN_HWTAGGING on lagg(4)
that doesn't has physical interfaces

Revision 1.52 / (download) - annotate - [select for diffs], Wed Nov 22 03:28:57 2023 UTC (3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.51: +7 -2 lines
Diff to previous 1.51 (colored)

lagg(4): Fix missing pfil_run_hooks() and bpf_mtap()

Revision 1.48.4.1 / (download) - annotate - [select for diffs], Thu Oct 19 07:23:50 2023 UTC (4 months, 1 week ago) by martin
Branch: netbsd-10
CVS Tags: netbsd-10-0-RC1
Changes since 1.48: +13 -15 lines
Diff to previous 1.48 (colored)

Pull up following revision(s) (requested by yamaguchi in ticket #429):

	sys/net/lagg/if_lagg.c: revision 1.50
	sys/net/lagg/if_lagg.c: revision 1.51
	tests/net/if_lagg/t_lagg.sh: revision 1.10
	sys/net/lagg/if_lagg.c: revision 1.49
	tests/net/if_lagg/t_lagg.sh: revision 1.9
	share/man/man4/lagg.4: revision 1.5

lagg(4): release LAGG_LOCK before mtu changing
PR kern/57650

Make the lagg interface up before change its MTU
This change is related to PR kern/57650

Fix missing IFNET_LOCK holding while destroy the lagg interface
copy MTU of lagg to a interface added to lagg
even if the interface is the first member of the lagg

This change breaks ATF test case for lagg MTU

Update the test case for MTU of lag to adapt new behavior

Update lagg(4) manual
1. corrected the wrong example
   - lagg(4) can not add multiple port and set its priority at once
      - This is the restriction of ifconfig(8)
2. adapted to changed behavior related to MTU
   - Changed not to copy MTU of the 1st physical interface
     to lagg(4) to prevent locking against myself

Revision 1.51 / (download) - annotate - [select for diffs], Wed Oct 18 06:37:08 2023 UTC (4 months, 1 week ago) by yamaguchi
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation
Changes since 1.50: +6 -13 lines
Diff to previous 1.50 (colored)

copy MTU of lagg to a interface added to lagg
even if the interface is the first member of the lagg

This change breaks ATF test case for lagg MTU

Revision 1.50 / (download) - annotate - [select for diffs], Mon Oct 16 08:25:57 2023 UTC (4 months, 1 week ago) by yamaguchi
Branch: MAIN
Changes since 1.49: +4 -2 lines
Diff to previous 1.49 (colored)

Fix missing IFNET_LOCK holding while destroy the lagg interface

Revision 1.49 / (download) - annotate - [select for diffs], Mon Oct 16 07:49:01 2023 UTC (4 months, 1 week ago) by yamaguchi
Branch: MAIN
Changes since 1.48: +7 -4 lines
Diff to previous 1.48 (colored)

lagg(4): release LAGG_LOCK before mtu changing

PR kern/57650

Revision 1.48 / (download) - annotate - [select for diffs], Sun Jun 26 17:55:24 2022 UTC (20 months ago) by riastradh
Branch: MAIN
CVS Tags: netbsd-10-base, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Branch point for: netbsd-10
Changes since 1.47: +10 -8 lines
Diff to previous 1.47 (colored)

lagg(4): Safely handle misaligned mbufs.

Optimizing for non-strict-alignment architectures -- without falling
afoul of alignment sanitizers or overeager compilers -- is left as an
exercise for the reader.

PR kern/56894

Revision 1.47 / (download) - annotate - [select for diffs], Mon Apr 4 09:59:41 2022 UTC (22 months, 3 weeks ago) by martin
Branch: MAIN
Changes since 1.46: +3 -3 lines
Diff to previous 1.46 (colored)

Avoid signed/unsigned comparision by casting the sizeof expression.

Revision 1.46 / (download) - annotate - [select for diffs], Mon Apr 4 06:10:00 2022 UTC (22 months, 3 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.45: +45 -21 lines
Diff to previous 1.45 (colored)

Move input processing of lagg(4) before ether_input
to get rid of dependence.

This implementation is similar with that of bridge(4).

Revision 1.45 / (download) - annotate - [select for diffs], Fri Apr 1 07:26:51 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.44: +196 -293 lines
Diff to previous 1.44 (colored)

lagg(4): reimplement add and delete port

The IFNET_LOCK for the adding or deleting port became to
be held the whole time while the ifnet of the port is changed.

Revision 1.44 / (download) - annotate - [select for diffs], Thu Mar 31 07:59:05 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.43: +3 -3 lines
Diff to previous 1.43 (colored)

rename lagg_enqueue to lagg_output

NFC

Revision 1.43 / (download) - annotate - [select for diffs], Thu Mar 31 03:21:33 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.42: +36 -28 lines
Diff to previous 1.42 (colored)

Use ether_ioctl to change mtu of lagg(4)

Revision 1.42 / (download) - annotate - [select for diffs], Thu Mar 31 03:15:15 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.41: +34 -57 lines
Diff to previous 1.41 (colored)

Use addlog(4) for putting 2 messages to one line

Revision 1.41 / (download) - annotate - [select for diffs], Thu Mar 31 03:12:31 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.40: +2 -3 lines
Diff to previous 1.40 (colored)

Make lagg interface specified "laggproto none" able to up

Revision 1.40 / (download) - annotate - [select for diffs], Thu Mar 31 03:10:59 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.39: +47 -30 lines
Diff to previous 1.39 (colored)

added log when ifpromisc is failed

Revision 1.39 / (download) - annotate - [select for diffs], Thu Mar 31 03:07:05 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.38: +10 -4 lines
Diff to previous 1.38 (colored)

Set flags related to MTU on adding l2tp(4) to lagg(4)

Revision 1.38 / (download) - annotate - [select for diffs], Thu Mar 31 02:00:27 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.37: +22 -38 lines
Diff to previous 1.37 (colored)

fix coding style

Revision 1.37 / (download) - annotate - [select for diffs], Thu Mar 31 01:57:13 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.36: +2 -3 lines
Diff to previous 1.36 (colored)

lagg(4): remove duplicated bpf_mtap

Revision 1.36 / (download) - annotate - [select for diffs], Thu Mar 31 01:53:22 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.35: +3 -3 lines
Diff to previous 1.35 (colored)

Change error code to ENOBUFS on lack of buffer memory

pointed out by k-goda@IIJ

Revision 1.35 / (download) - annotate - [select for diffs], Thu Mar 31 01:49:02 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.34: +3 -2 lines
Diff to previous 1.34 (colored)

Fix missing freeing resource related to protocol

pointed out by k-goda@IIJ

Revision 1.34 / (download) - annotate - [select for diffs], Thu Mar 31 01:46:25 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.33: +19 -14 lines
Diff to previous 1.33 (colored)

Switch ifp->if_output along with configuring ifp->if_lagg

lagg_port_output stored to ifp->if_output uses ifp->if_lagg.
Therefore, ifp->if_output switches to lagg_port_output after
ifp->if_lagg is configured, and restores in reverse order.

This missing order is pointed out by k-goda@IIJ

Revision 1.33 / (download) - annotate - [select for diffs], Thu Mar 31 01:43:48 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.32: +6 -2 lines
Diff to previous 1.32 (colored)

Added missing NULL check

pointed out by k-goda@IIJ

Revision 1.32 / (download) - annotate - [select for diffs], Thu Mar 31 01:42:40 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.31: +26 -24 lines
Diff to previous 1.31 (colored)

lagg(4): commonize the error handling

Revision 1.31 / (download) - annotate - [select for diffs], Thu Mar 31 01:39:09 2022 UTC (22 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.30: +3 -3 lines
Diff to previous 1.30 (colored)

lagg(4): fix typo

pointed out by k-goda@IIJ

Revision 1.30 / (download) - annotate - [select for diffs], Wed Jan 12 08:23:53 2022 UTC (2 years, 1 month ago) by yamaguchi
Branch: MAIN
Changes since 1.29: +10 -3 lines
Diff to previous 1.29 (colored)

Fix to call lacp_linkstate with IFNET_LOCK held

Network stack calls lacp_linkstate through lagg_port_ioctl when
doing "ifconfig up" or "ifconfig down" to an interface that is
a member of lagg(4). And IFNET_LOCK in the member interface
is held while the ioctl.
Therefore, lacp_linkstate is renamed to
lacp_linkstate_ifnet_locked, and always called with IFNET_LOCK
held. It avoids locking agains myself.

Revision 1.29 / (download) - annotate - [select for diffs], Wed Jan 12 01:21:36 2022 UTC (2 years, 1 month ago) by riastradh
Branch: MAIN
Changes since 1.28: +10 -6 lines
Diff to previous 1.28 (colored)

lagg(4): Need to take IFNET_LOCK around if_init.

This should really just avoid dropping IFNET_LOCK before it's done
changing the port interface's configuration, but this stop-gap change
will serve provisionally to reduce crashes until we can confirm that
there's no deadlock lurking in the time this logic drops IFNET_LOCK.

Revision 1.28 / (download) - annotate - [select for diffs], Fri Dec 31 14:25:24 2021 UTC (2 years, 1 month ago) by riastradh
Branch: MAIN
Changes since 1.27: +8 -8 lines
Diff to previous 1.27 (colored)

sys: Use if_init wrapper function.

Exception: Not in kern_pmf.c, for the kind of silly reason that it
avoids having kern_pmf.c refer to symbols defined only in net; this
avoids a pain in the rump.

Revision 1.27 / (download) - annotate - [select for diffs], Fri Dec 31 14:24:38 2021 UTC (2 years, 1 month ago) by riastradh
Branch: MAIN
Changes since 1.26: +5 -5 lines
Diff to previous 1.26 (colored)

sys: Use if_stop wrapper function.

Exception: Not in kern_pmf.c, for the kind of silly reason that it
avoids having kern_pmf.c refer to symbols defined only in net; this
avoids a pain in the rump.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Nov 15 07:07:05 2021 UTC (2 years, 3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.25: +6 -101 lines
Diff to previous 1.25 (colored)

introduced APIs to configure VLAN TAG to ethernet devices

Revision 1.25 / (download) - annotate - [select for diffs], Fri Nov 12 05:56:54 2021 UTC (2 years, 3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.24: +5 -5 lines
Diff to previous 1.24 (colored)

Configure vlan to an added interface after setting ifnet::if_lagg

The configuration uses ioctl of the interface, and the ioctl
for port (lagg_port_ioctl) needs ifnet:::if_lagg setting.

Revision 1.24 / (download) - annotate - [select for diffs], Fri Nov 12 05:48:58 2021 UTC (2 years, 3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.23: +99 -44 lines
Diff to previous 1.23 (colored)

lagg: Add vid to vlanid_list in ethercom

Revision 1.23 / (download) - annotate - [select for diffs], Fri Nov 12 05:40:44 2021 UTC (2 years, 3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.22: +3 -3 lines
Diff to previous 1.22 (colored)

Fix the wrong check of interface type

 - lp->lp_iftype: original ifnet::if_type
 - lp->lp_ifp->if_type: current ifnet::if_type
    - always IFT_IEEE8023ADLAG

Revision 1.22 / (download) - annotate - [select for diffs], Fri Nov 12 05:34:45 2021 UTC (2 years, 3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.21: +63 -2 lines
Diff to previous 1.21 (colored)

lagg: Notify the changes of capenables of interface
to child interfaces

Revision 1.21 / (download) - annotate - [select for diffs], Thu Nov 11 01:10:09 2021 UTC (2 years, 3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.20: +30 -18 lines
Diff to previous 1.20 (colored)

lagg: Use promiscuous mode instead of if_init() to avoid panic
when the interface has no if_init()

Revision 1.20 / (download) - annotate - [select for diffs], Mon Nov 8 06:29:16 2021 UTC (2 years, 3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.19: +2 -35 lines
Diff to previous 1.19 (colored)

remove unused ioctl command named SIOCGLAGGPORT
to get status of l2tp(4) added to lagg

NOTE:
SIOCGLAGGPORT is based on FreeBSD implementation.
And, currently, it is not used in NetBSD kernel/userland.

Revision 1.19 / (download) - annotate - [select for diffs], Mon Nov 8 06:22:16 2021 UTC (2 years, 3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.18: +124 -8 lines
Diff to previous 1.18 (colored)

lagg: renew MAC addresses to change the value of interface type

The interface type(ifnet::if_type) is changed on adding to lagg(4)
and deleting from it.

Revision 1.18 / (download) - annotate - [select for diffs], Mon Nov 8 06:17:05 2021 UTC (2 years, 3 months ago) by yamaguchi
Branch: MAIN
Changes since 1.17: +9 -2 lines
Diff to previous 1.17 (colored)

Update the MAC address of all child interface
when that of lagg is changed.

Revision 1.17 / (download) - annotate - [select for diffs], Fri Oct 22 06:20:47 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.16: +36 -34 lines
Diff to previous 1.16 (colored)

lagg: change hash logic to generate the same value
when pairs of source and destination are the same

Revision 1.16 / (download) - annotate - [select for diffs], Tue Oct 19 08:02:42 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.15: +2 -3 lines
Diff to previous 1.15 (colored)

lagg: reject a vlan interface that is not configured

The vlan I/F has no MAC address used in LACP.

Revision 1.15 / (download) - annotate - [select for diffs], Tue Oct 19 07:52:33 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.14: +87 -35 lines
Diff to previous 1.14 (colored)

lagg: support l2tp(4) aggregation

- Accept "ifconfig lagg* laggport l2tp*"
- Set promiscuous mode when the added interface is l2tp*
- check IFF_UP in addition to IFF_RUNNING on
  SIOCSIFFLAGS to a child interface.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Oct 19 07:40:52 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.13: +4 -2 lines
Diff to previous 1.13 (colored)

lagg: clear I/G bitg and set G/L bit in a generated MAC address

Revision 1.13 / (download) - annotate - [select for diffs], Tue Oct 12 08:30:58 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.12: +29 -5 lines
Diff to previous 1.12 (colored)

Set a port interface of lagg(4) in promiscuous mode
when the lagg(4) is in promiscuous mode.

Revision 1.12 / (download) - annotate - [select for diffs], Tue Oct 12 08:26:47 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.11: +201 -8 lines
Diff to previous 1.11 (colored)

lagg: update capabilities of ifnet and ethercom

Commonly capabilities of all child interface are configured
to a lagg interface.

Revision 1.11 / (download) - annotate - [select for diffs], Tue Oct 5 04:17:58 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.10: +23 -3 lines
Diff to previous 1.10 (colored)

Drop unicast packets that are not for us
when lagg(4) is not in promisc

Revision 1.10 / (download) - annotate - [select for diffs], Thu Sep 30 04:29:17 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.9: +73 -23 lines
Diff to previous 1.9 (colored)

lagg: Register lagg_ifdetach to ether_ifdetach hook

Revision 1.9 / (download) - annotate - [select for diffs], Thu Sep 30 04:23:30 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.8: +349 -254 lines
Diff to previous 1.8 (colored)

Make a link-layer address of lagg(4) configurable by ifconfig(8)

lagg(4) uses a configured link-layer (MAC) address instead
of a random MAC address generated on creating.
The configured MAC address is copied to all child interface
and used for a system id of LACP.

Revision 1.8 / (download) - annotate - [select for diffs], Thu Sep 30 04:20:14 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.7: +22 -19 lines
Diff to previous 1.7 (colored)

Fix to acquire LAGG_LOCK without psref
to remove possibility of deadlock

the deadlock maybe happened between lagg_ifdetach()
and lagg_delport()

1. lagg_ifdetach calls psref_target_acquire()
2. lagg_delport calls LAGG_LOCK()
3. lagg_ifdetach calls LAGG_LOCK()
   - wait for lagg_delport
4. lagg_delport calls psref_target_destroy()
   - wait for lagg_ifdetach

Revision 1.7 / (download) - annotate - [select for diffs], Thu Sep 30 03:39:39 2021 UTC (2 years, 4 months ago) by yamaguchi
Branch: MAIN
Changes since 1.6: +12 -3 lines
Diff to previous 1.6 (colored)

lagg: Register lagg_linkstate_changed to link-state change hook

Revision 1.5.2.3 / (download) - annotate - [select for diffs], Sun Aug 1 22:42:41 2021 UTC (2 years, 6 months ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.5.2.2: +3 -3 lines
Diff to previous 1.5.2.2 (colored) next main 1.6 (colored)

Sync with HEAD.

Revision 1.6 / (download) - annotate - [select for diffs], Tue Jul 13 09:00:26 2021 UTC (2 years, 7 months ago) by ozaki-r
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-futex2-base, thorpej-futex2, thorpej-cfargs2-base, thorpej-cfargs2
Changes since 1.5: +3 -3 lines
Diff to previous 1.5 (colored)

lagg: fix typo for ALTQ

Revision 1.5.2.2 / (download) - annotate - [select for diffs], Thu Jun 17 04:46:35 2021 UTC (2 years, 8 months ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.5.2.1: +2451 -0 lines
Diff to previous 1.5.2.1 (colored)

Sync w/ HEAD.

Revision 1.5.2.1, Wed Jun 16 00:21:19 2021 UTC (2 years, 8 months ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.5: +0 -2451 lines
FILE REMOVED

file if_lagg.c was added on branch thorpej-i2c-spi-conf on 2021-06-17 04:46:35 +0000

Revision 1.5 / (download) - annotate - [select for diffs], Wed Jun 16 00:21:19 2021 UTC (2 years, 8 months ago) by riastradh
Branch: MAIN
Branch point for: thorpej-i2c-spi-conf
Changes since 1.4: +3 -8 lines
Diff to previous 1.4 (colored)

if_attach and if_initialize cannot fail, don't test return value

These were originally made failable back in 2017 when if_initialize
allocated a softint in every interface for link state changes, so
that it could fail gracefully instead of panicking:

https://mail-index.NetBSD.org/source-changes/2017/10/23/msg089053.html

However, this spawned many seldom- or never-tested error branches,
which are risky to have around.  And that softint in every interface
has since been replaced by a single global workqueue, because link
state changes require thread context but not low latency or high
throughput:

https://mail-index.NetBSD.org/source-changes/2020/02/06/msg113759.html

So there is no longer any reason for if_initialize to fail.  (The
subroutine if_stats_init can't fail because percpu_alloc can't fail
either.)

There is a snag: the softint_establish in if_percpuq_create could
fail, potentially leading to bad consequences later on trying to use
the softint.  This change doesn't introduce any new bugs because of
the snag -- if_percpuq_attach was already broken.  However, the snag
can be better addressed without spawning error branches, either by
using a single softint or making softints less scarce.

(Separate commit will change the signatures of if_attach and
if_initialize to return void, scheduled to ride whatever is the next
convenient kernel bump.)

Patch and testing on amd64 and evbmips64-eb by maya@; commit message
soliloquy, and compile-testing on evbppc/i386/earmv7hf, by me.

Revision 1.4.2.2 / (download) - annotate - [select for diffs], Mon May 31 22:15:21 2021 UTC (2 years, 8 months ago) by cjep
Branch: cjep_staticlib_x
Changes since 1.4.2.1: +2456 -0 lines
Diff to previous 1.4.2.1 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

sync with head

Revision 1.4.2.1, Mon May 24 13:42:58 2021 UTC (2 years, 9 months ago) by cjep
Branch: cjep_staticlib_x
Changes since 1.4: +0 -2456 lines
FILE REMOVED

file if_lagg.c was added on branch cjep_staticlib_x on 2021-05-31 22:15:21 +0000

Revision 1.4 / (download) - annotate - [select for diffs], Mon May 24 13:42:58 2021 UTC (2 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1
Branch point for: cjep_staticlib_x
Changes since 1.3: +4 -4 lines
Diff to previous 1.3 (colored)

Move __KERNEL_RCSID() to the traditional location.

Revision 1.3 / (download) - annotate - [select for diffs], Mon May 24 06:08:28 2021 UTC (2 years, 9 months ago) by yamaguchi
Branch: MAIN
Changes since 1.2: +21 -2 lines
Diff to previous 1.2 (colored)

Added missing copyright and license notice

pointed out by thorpej@n.o., Thanks.

Revision 1.2 / (download) - annotate - [select for diffs], Wed May 19 10:20:50 2021 UTC (2 years, 9 months ago) by rillig
Branch: MAIN
Changes since 1.1: +4 -3 lines
Diff to previous 1.1 (colored)

if_lagg: fix format string incompatibility

In struct ifnet, the member if_mtu has type uint64_t, which differs from
struct ifreq, where the member ifru_mtu has type int.

Revision 1.1 / (download) - annotate - [select for diffs], Mon May 17 04:07:43 2021 UTC (2 years, 9 months ago) by yamaguchi
Branch: MAIN

Add a new link-aggregation pseudo interface named lagg(4)

 - FreeBSD's lagg(4) based implementation
 - MP-safe and MP-scalable

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>