NetworkManager/src
Dan Williams 5e4761a3a9 core: take over IPv6LL address management if kernel supports it (bgo #734149)
NM keeps interfaces IFF_UP when possible to receive link layer
events like carrier changes.  Unfortunately, the kernel also
uses IFF_UP as a flag to assign an IPv6LL address to the interface,
which results in IPv6 connectivity on the link even if the interface
is not supposed to be activated/connected.

NM sets disable_ipv6=1 to ensure that the kernel does not set up
IPv6LL connectivity on interfaces when they are not supposed to
be active and connected.  Unfortunately, that prevents users from
manually adding IPv6 addresses to the interface, since they expect
previous kernel behavior where IPv6 is enabled whenever the
interface is IFF_UP.

Furthermore, interfaces like PPP and some WWAN devices provide
misleading information to the kernel which causes the kernel to
create the wrong IPv6LL address for the interface.  The IPv6LL
address for these devices is obtained through control channels
instead (IPV6CP for PPP, proprietary protocols for WWAN devices)
and should be used instead of the kernel address.  So we'd like
to suppress kernel IPv6LL address generation on these interfaces
anyway.

This patch makes use of the netlink IFLA_INET6_ADDR_GEN_MODE
attribute to take over assignment of IPv6LL addresses while
keeping the interface IFF_UP, to ensure there is only IPv6
connectivity when the user requests it.

To remain compliant with standards, if a user adds IPv6 addresses
externally, NetworkManager must also immediately add an IPv6LL
address for that interface too.

https://bugzilla.gnome.org/show_bug.cgi?id=734149
2014-09-04 15:11:04 -05:00
..
devices core: take over IPv6LL address management if kernel supports it (bgo #734149) 2014-09-04 15:11:04 -05:00
dhcp-manager libnm-core: change all mac-address properties to G_TYPE_STRING 2014-09-04 09:20:10 -04:00
dns-manager all: remove a bunch of unnecessary dbus/dbus-glib includes 2014-09-03 10:45:24 -04:00
dnsmasq-manager all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
firewall-manager all: remove a bunch of unnecessary dbus/dbus-glib includes 2014-09-03 10:45:24 -04:00
platform platform: add support for kernel IPv6LL address generation modes 2014-09-04 15:10:26 -05:00
ppp-manager libnm-core: fix crash in NMSettingAdsl:verify() 2014-08-19 00:13:11 +02:00
rdisc rdisc: add RA wait timeout 2014-08-29 16:03:36 -05:00
settings libnm-core: change DCB DBUS_TYPE_G_UINT_ARRAY properties to G_TYPE_ARRAY 2014-09-04 09:20:12 -04:00
supplicant-manager libnm-core: change DBUS_TYPE_G_UCHAR_ARRAY properties to G_TYPE_BYTES 2014-09-04 09:20:11 -04:00
tests libnm-core: change list-of-string and array-of-string properties to G_TYPE_STRV 2014-09-04 09:20:10 -04:00
vpn-manager libnm-core: rename NMConnection to/from_hash methods 2014-09-04 09:17:36 -04:00
main.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
Makefile.am logging: extract logging macros for devices to nm-device-logging.h 2014-08-06 19:22:02 +02:00
NetworkManagerUtils.c libnm-core: change all mac-address properties to G_TYPE_STRING 2014-09-04 09:20:10 -04:00
NetworkManagerUtils.h libnm-core: change all mac-address properties to G_TYPE_STRING 2014-09-04 09:20:10 -04:00
nm-activation-request.c all: remove a bunch of unnecessary dbus/dbus-glib includes 2014-09-03 10:45:24 -04:00
nm-activation-request.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-active-connection.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
nm-active-connection.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-auth-subject.c settings: prefer secret agents in the same process as the request 2013-12-03 16:41:00 -05:00
nm-auth-subject.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-config.c core: update data types of some hwaddr properties 2014-08-07 15:41:04 -04:00
nm-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-connection-provider.c core: remove useless NMSettings::connections-loaded signal 2014-01-23 15:14:49 -05:00
nm-connection-provider.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-connectivity.c all: remove remaining GParamSpec name/blurb strings 2014-06-19 17:45:03 -04:00
nm-connectivity.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-dbus-manager.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
nm-dbus-manager.h core: fill in nm-types.h, clean out other headers 2014-07-23 10:56:26 -04:00
nm-dcb.c dcb: wait for carrier down/up after disabling FCoE 2014-04-02 09:37:15 -05:00
nm-dcb.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-dhcp4-config.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
nm-dhcp4-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-dhcp6-config.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
nm-dhcp6-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-dispatcher.c libnm-core: rename NMConnection to/from_hash methods 2014-09-04 09:17:36 -04:00
nm-dispatcher.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-ip4-config.c libnm-core: improve NMSettingIP4Config / NMSettingIP6Config property types 2014-09-04 09:20:11 -04:00
nm-ip4-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-ip6-config.c libnm-core: improve NMSettingIP4Config / NMSettingIP6Config property types 2014-09-04 09:20:11 -04:00
nm-ip6-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-logging.c core/logging: change order or domain/level arguments for nm_log() 2014-08-01 19:06:25 +02:00
nm-logging.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-manager-auth.c all: remove a bunch of unnecessary dbus/dbus-glib includes 2014-09-03 10:45:24 -04:00
nm-manager-auth.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-manager.c libnm-core: change all mac-address properties to G_TYPE_STRING 2014-09-04 09:20:10 -04:00
nm-manager.h all: remove a bunch of unnecessary dbus/dbus-glib includes 2014-09-03 10:45:24 -04:00
nm-policy.c libnm, core, cli, tui: fix the capitalization of various types 2014-08-01 14:34:06 -04:00
nm-policy.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-posix-signals.c core: merge src/config, src/logging, src/posix-signals into src/ 2014-07-30 15:56:29 -04:00
nm-posix-signals.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-properties-changed-signal.c logging: tweak logging-enabled functions 2013-12-20 09:57:13 -05:00
nm-properties-changed-signal.h core: make nm-properties-changed-signal always export the right properties 2013-05-20 16:38:33 -03:00
nm-rfkill-manager.c core: split NMRfkillManager out of NMUdevManager 2013-06-05 17:49:24 -03:00
nm-rfkill-manager.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-session-monitor-ck.c core: make NMSessionMonitor non-refcounted 2013-12-03 16:39:37 -05:00
nm-session-monitor-null.c core: make NMSessionMonitor non-refcounted 2013-12-03 16:39:37 -05:00
nm-session-monitor-systemd.c sessions: fix return value handling for sd_uid_get_sessions() (bgo #707983) 2014-01-23 16:48:19 -06:00
nm-session-monitor.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-session-utils.c Use glib-mkenums to generate enum types 2012-02-15 11:42:15 -05:00
nm-session-utils.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-sleep-monitor-systemd.c all: remove a bunch of unnecessary dbus/dbus-glib includes 2014-09-03 10:45:24 -04:00
nm-sleep-monitor-upower.c core: convert the DBus manager to a single-ref object 2013-05-20 16:38:33 -03:00
nm-sleep-monitor.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-types.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
org.freedesktop.NetworkManager.conf dbus: kill at_console usage in permissions (bgo #707983) (rh #979416) 2014-01-23 16:48:19 -06:00