From a781ddefe5043c9f0750a125694760a3c43b003a Mon Sep 17 00:00:00 2001 From: Susant Sahani Date: Fri, 28 Feb 2020 03:51:28 +0100 Subject: [PATCH] network: make use of generate_ipv6_eui_64_address --- src/network/networkd-ndisc.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index c45fec54305..90cd0c81abd 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; -- 2.47.3