| commit | 8bc82868fd289220078ff317235db084349d9f70 | [log] [tgz] |
|---|---|---|
| author | Lorenz Brun <lorenz@monogon.tech> | Tue Apr 30 11:47:09 2024 +0000 |
| committer | Lorenz Brun <lorenz@monogon.tech> | Mon May 13 10:44:10 2024 +0000 |
| tree | 38c893fc96169d4c79a7d699d83158f86f564d04 | |
| parent | b765f24f8f1c93b817c8a3f4f1eef2514562b140 [diff] |
third_party/linux: fix LACP issues This fixes two major issues with the Linux LACP implementation: First, the bond interface indicates carrier availability before any port is even in aggregation state. It pretty much only cares about underlying port carrier state which is not meaningful in LACP-controlled aggregation. Second, individual ports are added to the list of transmitting ports immediately after coming up. This causes packets to be transmitted before the LACP state indicates that this should happen. Fix both of these issues by only enabling ports when the LACP state machine places them in collecting/distributing state and making the bond carrier state dependent on ports being enabled. This makes the interface also behave logically consistent, i.e. it can transmit packets when its carrier is reported up and not when its carrier is reported down. While in there, fix some timer-related annoyances which make convergence unnecessarily slow. This also comes with a ktest which can be used for testing and verification of these changes. Change-Id: I60d0ed483f4f4ccea4d582b80e2bb29ff741783d Reviewed-on: https://review.monogon.dev/c/monogon/+/3073 Reviewed-by: Serge Bazanski <serge@monogon.tech> Tested-by: Jenkins CI
This is the main repository containing the source code for the Monogon Platform.
This is pre-release software - take a look, and check back later! In the meantime, join us on Matrix: #monogon-os-community:matrix.org.
Our build environment is self-contained and requires only minimal host dependencies:
/dev/kvm (if you want to run tests).Our docs assume that Bazelisk is available as bazel on your PATH.
Refer to SETUP.md for detailed instructions.
The source code lives in //metropolis (Metropolis is the codename of Monogon OS).
See the //metropolis/README.md for a developer quick start guide, or see the Monogon OS Handbook for user documentation.