NetworkManager/src/core
Beniamino Galvani 70aeccf605 device: send ARP announcements when there is carrier
Previously we sent announcements immediately for non-controllers, or
after the first port was attached for controllers.

This has two problems:

 - announcements can be sent when there is no carrier and they would
   be lost;

 - if a controller has a port, the port could be itself a controller;
   in that case we start sending ARPs with the fake address of the
   port. Later, when a leaf port is added to the second-level
   controller, the correct port MAC will be propagated by kernel up to
   both controllers.

To solve both problems, send ARP announcements only when the interface
has carrier. This also solves the second issue because controllers
created by NM have carrier only when there is a port with carrier.

Fixes: de1022285a ('device: do ARP announcements only after masters have a slave')

https://bugzilla.redhat.com/show_bug.cgi?id=1956793
(cherry picked from commit 1377f160ed)
2021-07-13 09:36:35 +02:00
..
devices device: send ARP announcements when there is carrier 2021-07-13 09:36:35 +02:00
dhcp core,nm-dispatcher: use nm_utils_get_process_exit_status_desc() 2021-06-11 21:59:11 +02:00
dns dns: add function to retrieve the systemd-resolved plugin instance 2021-06-11 21:59:11 +02:00
dnsmasq core: cleanup #include of "nm-dnsmasq-utils.c" 2021-04-20 17:25:21 +02:00
ndisc clang-format: reformat code with clang 12 2021-05-04 13:56:26 +02:00
platform platform/tests: add assertions to nmtstp_link_bridge_normalize_jiffies_time() 2021-07-06 09:33:58 +02:00
ppp build: fix linking libnm-log-null into different test programs 2021-07-05 15:09:52 +02:00
settings all: add a new ipv{4,6}.required-timeout property 2021-07-05 17:17:19 +02:00
supplicant supplicant: suppress warning log for P2PDevice.Cancel() 2021-06-24 11:15:04 +02:00
tests glib-aux: use nm_utils_gettid() instead of gettid() 2021-07-08 08:33:53 +02:00
vpn core: drop deprecated PropertiesChanged D-Bus signal (API BREAK) 2021-05-14 10:57:34 +02:00
main-utils.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
main-utils.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
main.c core: set _nm_utils_is_manager_process as first thing in daemon 2021-07-01 11:33:56 +02:00
meson.build systemd: move "src/core/systemd" to "src/libnm-systemd-core" 2021-05-30 09:45:05 +02:00
NetworkManagerUtils.c firewall: move firewall code to new "nm-firewall-utils.c" file 2021-05-07 11:42:50 +02:00
NetworkManagerUtils.h core: return instance from nm_dhcp_lease_ref()/nm_dhcp_lease_unref() for convenience 2021-05-18 09:41:53 +02:00
nm-act-request.c firewall: rename NMUtilsShareRules to NMFirewallConfig 2021-05-07 11:42:51 +02:00
nm-act-request.h firewall: rename NMUtilsShareRules to NMFirewallConfig 2021-05-07 11:42:51 +02:00
nm-active-connection.c core: drop deprecated PropertiesChanged D-Bus signal (API BREAK) 2021-05-14 10:57:34 +02:00
nm-active-connection.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-audit-manager.c audit: pass and reuse NMStrBuf for build_message() 2021-04-12 16:47:37 +02:00
nm-audit-manager.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-auth-manager.c build: move "shared/nm-{glib-aux,log-null,log-core}" to "src/libnm-{glib-aux,log-null,log-core}" 2021-02-24 12:48:20 +01:00
nm-auth-manager.h build: move "libnm-core/" to "src/" and split it 2021-02-18 19:46:51 +01:00
nm-auth-utils.c build: move "shared/nm-{glib-aux,log-null,log-core}" to "src/libnm-{glib-aux,log-null,log-core}" 2021-02-24 12:48:20 +01:00
nm-auth-utils.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-checkpoint-manager.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-checkpoint-manager.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-checkpoint.c core: drop deprecated PropertiesChanged D-Bus signal (API BREAK) 2021-05-14 10:57:34 +02:00
nm-checkpoint.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-config-data.c config: avoid cloning string during nm_config_data_get_connection_default() et al. 2021-06-21 17:31:06 +02:00
nm-config-data.h config: avoid cloning string during nm_config_data_get_connection_default() et al. 2021-06-21 17:31:06 +02:00
nm-config.c core: belatedly add [main].firewall-backend config to known options 2021-06-04 10:27:20 +02:00
nm-config.h config: add "nm-base/nm-config-base.h" 2021-03-15 17:10:52 +01:00
nm-connectivity.c dns: add function to retrieve the systemd-resolved plugin instance 2021-06-11 21:59:11 +02:00
nm-connectivity.h core: move NMPObjectType to "libnm-platform/nmp-base.h" 2021-03-05 11:27:15 +01:00
nm-core-utils.c core: add infrastructure for spawning a helper process 2021-06-11 21:59:11 +02:00
nm-core-utils.h core: add infrastructure for spawning a helper process 2021-06-11 21:59:11 +02:00
nm-dbus-manager.c core: drop deprecated PropertiesChanged D-Bus signal (API BREAK) 2021-05-14 10:57:34 +02:00
nm-dbus-manager.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-dbus-object.c core: return boolean result from nm_dbus_object_clear_and_unexport() 2021-04-20 17:25:21 +02:00
nm-dbus-object.h core: drop deprecated PropertiesChanged D-Bus signal (API BREAK) 2021-05-14 10:57:34 +02:00
nm-dbus-utils.c core: drop deprecated PropertiesChanged D-Bus signal (API BREAK) 2021-05-14 10:57:34 +02:00
nm-dbus-utils.h core: drop deprecated PropertiesChanged D-Bus signal (API BREAK) 2021-05-14 10:57:34 +02:00
nm-dcb.c platform: move more platform code to src/libnm-platform/ 2021-03-05 11:27:16 +01:00
nm-dcb.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-default-daemon.h build: move "shared/nm-{glib-aux,log-null,log-core}" to "src/libnm-{glib-aux,log-null,log-core}" 2021-02-24 12:48:20 +01:00
nm-dhcp-config.c core: drop deprecated PropertiesChanged D-Bus signal (API BREAK) 2021-05-14 10:57:34 +02:00
nm-dhcp-config.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-dispatcher.c all: use nm_g_variant_new_au() helper 2021-04-16 11:44:20 +02:00
nm-dispatcher.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-firewall-utils.c firewall: fix double free 2021-06-15 19:45:48 +02:00
nm-firewall-utils.h firewall: add special firewall-backend "none" 2021-05-14 11:41:33 +02:00
nm-firewalld-manager.c firewall: rename NMFirewallManager to NMFirewalldManager 2021-05-06 12:22:37 +02:00
nm-firewalld-manager.h firewall: rename NMFirewallManager to NMFirewalldManager 2021-05-06 12:22:37 +02:00
nm-hostname-manager.c clang-format: reformat code with clang 12 2021-05-04 13:56:26 +02:00
nm-hostname-manager.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-iface-helper.c systemd: move "src/core/systemd" to "src/libnm-systemd-core" 2021-05-30 09:45:05 +02:00
nm-ip-config.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-ip-config.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-ip4-config.c core: add nm_ip_config_find_first_address() 2021-06-21 10:14:19 +02:00
nm-ip4-config.h core: add nm_ip_config_find_first_address() 2021-06-21 10:14:19 +02:00
nm-ip6-config.c core: add nm_ip_config_find_first_address() 2021-06-21 10:14:19 +02:00
nm-ip6-config.h core: add nm_ip_config_find_first_address() 2021-06-21 10:14:19 +02:00
nm-keep-alive.c build: move "shared/nm-{glib-aux,log-null,log-core}" to "src/libnm-{glib-aux,log-null,log-core}" 2021-02-24 12:48:20 +01:00
nm-keep-alive.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-l3-config-data.c l3cfg: use NMRefString for strings in NML3ConfigData 2021-05-27 09:56:45 +02:00
nm-l3-config-data.h l3cfg: add proxy properties to NML3ConfigData 2021-05-27 09:56:44 +02:00
nm-l3-ipv4ll.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-l3-ipv4ll.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-l3cfg.c l3cfg: minor adjustments for L3Cfg code 2021-05-27 10:06:44 +02:00
nm-l3cfg.h l3cfg: minor adjustments for L3Cfg code 2021-05-27 10:06:44 +02:00
nm-manager.c core: add nm_settings_get_connection_sorted_by_autoconnect_priority() 2021-06-21 17:25:40 +02:00
nm-manager.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-netns.c glib-aux/trivial: rename nm_{pint,puint32}_equals() to nm_\1_equal() 2021-05-27 09:56:40 +02:00
nm-netns.h platform: move more platform code to src/libnm-platform/ 2021-03-05 11:27:16 +01:00
nm-pacrunner-manager.c l3cfg: add proxy properties to NML3ConfigData 2021-05-27 09:56:44 +02:00
nm-pacrunner-manager.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-policy.c policy: prefer IPv4 to determine the hostname 2021-06-21 08:57:30 +02:00
nm-policy.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-proxy-config.c build: move "libnm-core/" to "src/" and split it 2021-02-18 19:46:51 +01:00
nm-proxy-config.h l3cfg: add proxy properties to NML3ConfigData 2021-05-27 09:56:44 +02:00
nm-rfkill-manager.c build: move "shared/nm-{base,udev-aux}" to "src/libnm-{base,udev-aux}" 2021-02-24 12:48:19 +01:00
nm-rfkill-manager.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-session-monitor.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-session-monitor.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-sleep-monitor.c clang-format: reformat code with clang 12 2021-05-04 13:56:26 +02:00
nm-sleep-monitor.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-test-utils-core.h tests: move nmtst_init_with_logging() to "libnm-glib-aux/nm-test-utils.h" 2021-03-15 17:10:52 +01:00
nm-types.h systemd: move "src/core/systemd" to "src/libnm-systemd-core" 2021-05-30 09:45:05 +02:00
org.freedesktop.NetworkManager.conf all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00