NetworkManager/src/n-acd
Beniamino Galvani 23727917b2 n-acd: use separate seed state for each probe of the same acd
Currently, all the probes of an acd instance share the same seed
state. This means that the state is updated by all the probes, and as
a consequence they get different jitters for the wait timeouts;
therefore the order in which addresses become available (and are
configured on the interface) is not deterministic.

Keep a separate seed state for each probe, initialized from the acd
seed. This ensures that all the probes use the same timeouts when
sending probe requests, and that in case of no collision, addresses
are available in the order of probe start.

n-acd pull request: https://github.com/nettools/n-acd/pull/10
2023-10-05 09:02:57 +02:00
..
.github/workflows build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
src n-acd: use separate seed state for each probe of the same acd 2023-10-05 09:02:57 +02:00
subprojects modules: patch meson subprojects to use local dependencies 2022-07-25 10:27:33 +02:00
.editorconfig build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
.gitmodules build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
AUTHORS build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
meson.build modules: patch meson subprojects to use local dependencies 2022-07-25 10:27:33 +02:00
meson_options.txt build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
NEWS.md build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
README.md build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00

n-acd

IPv4 Address Conflict Detection

The n-acd project implements the IPv4 Address Conflict Detection standard as defined in RFC-5227. The state machine is implemented in a shared library and provides a stable ISO-C11 API. The implementation is linux-only and relies heavily on the API behavior of recent linux kernel releases.

Project

Requirements

The requirements for this project are:

  • Linux kernel >= 3.19
  • libc (e.g., glibc >= 2.16)

At build-time, the following software is required:

  • meson >= 0.41
  • pkg-config >= 0.29

Build

The meson build-system is used for this project. Contact upstream documentation for detailed help. In most situations the following commands are sufficient to build and install from source:

mkdir build
cd build
meson setup ..
ninja
meson test
ninja install

The following configuration options are available:

  • ebpf: This boolean controls whether ebpf features are used to improve the package filtering performance. If disabled, classic bpf will be used. This feature requires a rather recent kernel (>=3.19). Default is: true

Repository:

License:

  • Apache-2.0 OR LGPL-2.1-or-later
  • See AUTHORS file for details.