networkd: add support for address label
authorSusant Sahani <susant@redhat.com>
Tue, 25 Apr 2017 10:36:50 +0000 (16:06 +0530)
committerSusant Sahani <susant@redhat.com>
Wed, 26 Apr 2017 10:30:44 +0000 (16:00 +0530)
commit95b74ef6ea03632e050cddd99db8b42f30e6e824
treee6d0e68ac29dfb9aac2ea2256a2dc5bfd0eac729
parent30746d6088ccfec802972fd5ee12a1e945a0f69b
networkd: add support for address label

IPv6 address labels are used for address selection; they are described in RFC 3484.
Precedence is managed by userspace, and only the label itself is stored in the kernel.

enp0s25.network

[Match]
Name=enp0s25

[Network]
DHCP=yes
Address = 2001:db8:f00:baa::b

[AddressLabel]
Label=199
Prefix=2001:db8:41::/64

[AddressLabel]
Label=11
Prefix=2001:db8:31::/64

[AddressLabel]
Label=123
Prefix=2001:db8:21::/64

[AddressLabel]
Label=124
Prefix=2001:db8:11::/64
[sus@maximus label]$ ip addrlabel list

prefix ::1/128 label 0
prefix ::/96 label 3
prefix ::ffff:0.0.0.0/96 label 4
prefix 2001:db8:41::/64 dev enp0s25 label 199
prefix 2001:db8:31::/64 dev enp0s25 label 11
prefix 2001:db8:21::/64 dev enp0s25 label 123
prefix 2001:db8:11::/64 dev enp0s25 label 124
prefix 2001::/32 label 6
prefix 2001:10::/28 label 7
prefix 3ffe::/16 label 12
prefix 2002::/16 label 2
prefix fec0::/10 label 11
prefix fc00::/7 label 5
prefix ::/0 label 1
Makefile.am
man/systemd.network.xml
src/network/networkd-address-label.c [new file with mode: 0644]
src/network/networkd-address-label.h [new file with mode: 0644]
src/network/networkd-link.c
src/network/networkd-network-gperf.gperf
src/network/networkd-network.c
src/network/networkd-network.h