Systemd/src/network
Tom Gundersen 3b015d40c1 networkd: ndisc - handle router advertisement in userspace
Router Discovery is a core part of IPv6, which by default is handled by the kernel.
However, the kernel implementation is meant as a fall-back, and to fully support
the protocol a userspace implementation is desired.

The protocol essentially listens for Router Advertisement packets from routers
on the local link and use these to configure the client automatically. The four
main pieces of information are: what kind (if any) of DHCPv6 configuration should
be performed; a default gateway; the prefixes that should be considered to be on
the local link; and the prefixes with which we can preform SLAAC in order to pick
a global IPv6 address.

A lot of additional information is also available, which we do not yet fully
support, but which will eventually allow us to avoid the need for DHCPv6 in the
common case.

Short-term, the reason for wanting this is in userspace was the desire to fully
track all the addresses on links we manage, and that is not possible for addresses
managed by the kernel (as the kernel does not expose to us the fact that it
manages these addresses). Moreover, we would like to support stable privacy
addresses, which will soon be mandated and the legacy MAC-based global addresses
deprecated, to do this well we need to handle the generation in userspace. Lastly,
more long-term we wish to support more RA options than what the kernel exposes.
2015-11-11 15:42:38 +01:00
..
.gitignore Revert "update gitignore" 2014-05-22 06:14:41 +09:00
Makefile networkd: add a basic network daemon 2013-11-09 23:41:17 +01:00
networkctl.c networkctl: lldp port to extract_first_word 2015-11-10 22:17:58 +05:30
networkd-address-pool.c util-lib: split out allocation calls into alloc-util.[ch] 2015-10-27 13:45:53 +01:00
networkd-address-pool.h networkd: split up networkd.h into per-object header files 2015-08-27 14:01:23 +02:00
networkd-address.c networkd: address - drop the 'added' flag 2015-11-11 15:42:38 +01:00
networkd-address.h networkd: address - drop the 'added' flag 2015-11-11 15:42:38 +01:00
networkd-dhcp4.c networkd: dhcp4 - style fixes 2015-11-11 15:42:38 +01:00
networkd-dhcp6.c networkd: dhcp6 - split up configure() method 2015-11-11 15:42:38 +01:00
networkd-fdb.c util-lib: split out allocation calls into alloc-util.[ch] 2015-10-27 13:45:53 +01:00
networkd-fdb.h networkd: split up networkd.h into per-object header files 2015-08-27 14:01:23 +02:00
networkd-ipv4ll.c networkd: link - (de)serialize IPv4LL and DHCPv4 addresses 2015-10-30 12:32:49 +01:00
networkd-link-bus.c parse-util: introduce parse_ifindex() and make use of it everywhere 2015-11-03 00:02:00 +01:00
networkd-link.c networkd: ndisc - handle router advertisement in userspace 2015-11-11 15:42:38 +01:00
networkd-link.h networkd: ndisc - handle router advertisement in userspace 2015-11-11 15:42:38 +01:00
networkd-manager-bus.c util-lib: split out allocation calls into alloc-util.[ch] 2015-10-27 13:45:53 +01:00
networkd-manager.c networkd: IPv6 router discovery - follow IPv6AcceptRouterAdvertisemnt= 2015-11-11 15:42:38 +01:00
networkd-ndisc.c networkd: ndisc - handle router advertisement in userspace 2015-11-11 15:42:38 +01:00
networkd-netdev-bond.c bond: port to extract_first_word 2015-11-10 22:17:58 +05:30
networkd-netdev-bond.h networkd: split up networkd.h into per-object header files 2015-08-27 14:01:23 +02:00
networkd-netdev-bridge.c networkd: bridge prop convert to jiffies 2015-11-03 21:59:42 +05:30
networkd-netdev-bridge.h networkd: add bridge properties 2015-10-05 09:43:29 +05:30
networkd-netdev-dummy.c remove unused includes 2015-02-23 23:53:42 +01:00
networkd-netdev-dummy.h networkd: netdev - split NetDev struct into per-kind structs 2014-07-21 13:32:27 +02:00
networkd-netdev-gperf.gperf networkd: vxlan add option to set FDB entries 2015-11-03 09:28:03 +05:30
networkd-netdev-ipvlan.c util-lib: move string table stuff into its own string-table.[ch] 2015-10-27 13:25:56 +01:00
networkd-netdev-ipvlan.h networkd: netdev - add ipvlan support 2015-01-19 23:25:16 +01:00
networkd-netdev-macvlan.c util-lib: move string table stuff into its own string-table.[ch] 2015-10-27 13:25:56 +01:00
networkd-netdev-macvlan.h networkd: add support for macvtap 2015-07-27 11:18:28 +05:30
networkd-netdev-tunnel.c util-lib: move string table stuff into its own string-table.[ch] 2015-10-27 13:25:56 +01:00
networkd-netdev-tunnel.h networkd: add support for tunnel encap limit 2015-08-31 13:21:44 +05:30
networkd-netdev-tuntap.c util-lib: split out allocation calls into alloc-util.[ch] 2015-10-27 13:45:53 +01:00
networkd-netdev-tuntap.h networkd: tap add support for vnet_hdr 2015-07-14 14:10:56 +05:30
networkd-netdev-veth.c veth: fix assert 2015-10-25 09:31:18 +05:30
networkd-netdev-veth.h networkd: netdev - split NetDev struct into per-kind structs 2014-07-21 13:32:27 +02:00
networkd-netdev-vlan.c vlan: fix assert 2015-10-25 09:30:17 +05:30
networkd-netdev-vlan.h networkd: netdev - split NetDev struct into per-kind structs 2014-07-21 13:32:27 +02:00
networkd-netdev-vxlan.c networkd: vxlan add option to set FDB entries 2015-11-03 09:28:03 +05:30
networkd-netdev-vxlan.h networkd: vxlan add option to set FDB entries 2015-11-03 09:28:03 +05:30
networkd-netdev.c util-lib: split out allocation calls into alloc-util.[ch] 2015-10-27 13:45:53 +01:00
networkd-netdev.h networkd: add bridge properties 2015-10-05 09:43:29 +05:30
networkd-network-bus.c util-lib: split out allocation calls into alloc-util.[ch] 2015-10-27 13:45:53 +01:00
networkd-network-gperf.gperf networkd: Add support to configure IPV6 hop limit 2015-11-10 09:26:38 +05:30
networkd-network.c networkd: Add support to configure IPV6 hop limit 2015-11-10 09:26:38 +05:30
networkd-network.h networkd: Add support to configure IPV6 hop limit 2015-11-10 09:26:38 +05:30
networkd-route.c networkd: ndisc - handle router advertisement in userspace 2015-11-11 15:42:38 +01:00
networkd-route.h networkd: ndisc - handle router advertisement in userspace 2015-11-11 15:42:38 +01:00
networkd-util.c networkd: fix option name in log message 2015-11-06 10:51:34 +01:00
networkd-util.h networkd: split up networkd.h into per-object header files 2015-08-27 14:01:23 +02:00
networkd-wait-online-link.c util-lib: split out allocation calls into alloc-util.[ch] 2015-10-27 13:45:53 +01:00
networkd-wait-online-link.h sd-netlink: rename from sd-rtnl 2015-06-13 19:52:54 +02:00
networkd-wait-online-manager.c util-lib: split out allocation calls into alloc-util.[ch] 2015-10-27 13:45:53 +01:00
networkd-wait-online.c util: introduce common version() implementation and use it everywhere 2015-09-29 21:08:37 +02:00
networkd-wait-online.h sd-netlink: rename from sd-rtnl 2015-06-13 19:52:54 +02:00
networkd.c networkd: route - track routes 2015-10-30 12:32:48 +01:00
networkd.h networkd: route - track routes 2015-10-30 12:32:48 +01:00
org.freedesktop.network1.conf networkd: add basic dbus API 2015-02-05 11:50:34 +01:00
org.freedesktop.network1.service networkd: add basic dbus API 2015-02-05 11:50:34 +01:00
test-network-tables.c sd-netlink: rename from sd-rtnl 2015-06-13 19:52:54 +02:00
test-network.c util-lib: split out allocation calls into alloc-util.[ch] 2015-10-27 13:45:53 +01:00