diff options
author | Susant Sahani <ssahani@vmware.com> | 2020-02-28 03:51:28 +0100 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-03-01 00:49:24 +0900 |
commit | a781ddefe5043c9f0750a125694760a3c43b003a (patch) | |
tree | 0c2be9799216c9a426d604dec0e0ec0a9d384b30 /src/network | |
parent | bd6379ec57c5a25b1cb4ae61771c8a12179ebd7a (diff) | |
download | systemd-a781ddefe5043c9f0750a125694760a3c43b003a.tar.gz |
network: make use of generate_ipv6_eui_64_address
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/networkd-ndisc.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index c45fec5430..90cd0c81ab 100644 --- a/src/network/networkd-ndisc.c +++ b/src/network/networkd-ndisc.c @@ -324,16 +324,10 @@ static int ndisc_router_generate_addresses(Link *link, unsigned prefixlen, uint3 *new_address = *address; - /* see RFC4291 section 2.5.1 */ - new_address->in_addr.in6.s6_addr[8] = link->mac.ether_addr_octet[0]; - new_address->in_addr.in6.s6_addr[8] ^= 1 << 1; - new_address->in_addr.in6.s6_addr[9] = link->mac.ether_addr_octet[1]; - new_address->in_addr.in6.s6_addr[10] = link->mac.ether_addr_octet[2]; - new_address->in_addr.in6.s6_addr[11] = 0xff; - new_address->in_addr.in6.s6_addr[12] = 0xfe; - new_address->in_addr.in6.s6_addr[13] = link->mac.ether_addr_octet[3]; - new_address->in_addr.in6.s6_addr[14] = link->mac.ether_addr_octet[4]; - new_address->in_addr.in6.s6_addr[15] = link->mac.ether_addr_octet[5]; + r = generate_ipv6_eui_64_address(link, &new_address->in_addr.in6); + if (r < 0) + return log_link_error_errno(link, r, "Failed to generate EUI64 address: %m"); + new_address->prefixlen = prefixlen; new_address->flags = IFA_F_NOPREFIXROUTE|IFA_F_MANAGETEMPADDR; new_address->cinfo.ifa_prefered = lifetime_preferred; |