NetworkManager/shared/n-acd
Beniamino Galvani d082af6b5c n-acd: better handle interfaces going temporarily down
NM sometimes brings an interface temporarily down (for example to
change a VLAN MAC to align it to the parent interface's one). When
this happens, any recv() or send() in n-acd fails, the n-acd instance
is reset to the initial state and a DOWN event is reported to the
manager, which currently does not handle it. The result is an
inconsistent state.

There is no simple way of dealing with the DOWN event in the
manager. What we can do instead is to:

 - ignore errors during recv() because there is really nothing we can
   do, except for waiting timeouts to expire;

 - during probe, ignore errors during send() so that we don't exceed
   the probe timeout;

 - during announcement, retry after a send() error to ensure we send
   all 3 announcements.

https://bugzilla.redhat.com/show_bug.cgi?id=1578675
2018-05-29 11:18:30 +02:00
..
src n-acd: better handle interfaces going temporarily down 2018-05-29 11:18:30 +02:00
subprojects Merge commit '23cbce4bc9c70fc33d3413fc1b9a5f3303498036' as 'shared/n-acd' 2018-04-18 15:21:26 +02:00
.editorconfig Merge commit '23cbce4bc9c70fc33d3413fc1b9a5f3303498036' as 'shared/n-acd' 2018-04-18 15:21:26 +02:00
.gitmodules Merge commit '23cbce4bc9c70fc33d3413fc1b9a5f3303498036' as 'shared/n-acd' 2018-04-18 15:21:26 +02:00
.travis.yml Merge commit '23cbce4bc9c70fc33d3413fc1b9a5f3303498036' as 'shared/n-acd' 2018-04-18 15:21:26 +02:00
COPYING Merge commit '23cbce4bc9c70fc33d3413fc1b9a5f3303498036' as 'shared/n-acd' 2018-04-18 15:21:26 +02:00
LICENSE Merge commit '23cbce4bc9c70fc33d3413fc1b9a5f3303498036' as 'shared/n-acd' 2018-04-18 15:21:26 +02:00
meson.build Merge commit '23cbce4bc9c70fc33d3413fc1b9a5f3303498036' as 'shared/n-acd' 2018-04-18 15:21:26 +02:00
README Merge commit '23cbce4bc9c70fc33d3413fc1b9a5f3303498036' as 'shared/n-acd' 2018-04-18 15:21:26 +02:00

n-acd - IPv4 Address Conflict Detection

ABOUT:
        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.

DETAILS:
        https://github.com/nettools/n-acd/wiki

BUG REPORTS:
        https://github.com/nettools/n-acd/issues

GIT:
        git@github.com:nettools/n-acd.git
        https://github.com/nettools/n-acd.git

GITWEB:
        https://github.com/nettools/n-acd

LICENSE:
        Apache Software License 2.0 (LICENSE)
        See COPYING for details.

REQUIREMENTS:
        The requirements for n-acd are:

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

        At build-time, the following software is required:

            meson >= 0.41
            pkg-config >= 0.29

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

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

        No custom configuration options are available.