networkd: dhcp6 - do not handle prefix expiration
authorTom Gundersen <teg@jklm.no>
Sun, 18 Oct 2015 15:06:31 +0000 (17:06 +0200)
committerTom Gundersen <teg@jklm.no>
Thu, 22 Oct 2015 15:19:54 +0000 (17:19 +0200)
This ressurects 47d45d3cde45d6545367570264e4e3636bc9e345. We now always use /128 prefixes,
so there is no need for the DHCPv6 code to know about prefixes expiring.

src/network/networkd-dhcp6.c
src/network/networkd-link.h
src/network/networkd-ndisc.c

index f47ac15..57c81cb 100644 (file)
@@ -25,7 +25,6 @@
 #include "networkd-link.h"
 #include "network-internal.h"
 
-#include "sd-ndisc.h"
 #include "sd-dhcp6-client.h"
 
 static int dhcp6_lease_address_acquired(sd_dhcp6_client *client, Link *link);
@@ -247,42 +246,3 @@ int dhcp6_configure(Link *link, bool inf_req) {
         link->dhcp6_client = sd_dhcp6_client_unref(link->dhcp6_client);
         return r;
 }
-
-int dhcp6_prefix_expired(Link *link) {
-        int r;
-        sd_dhcp6_lease *lease;
-        struct in6_addr *expired_prefix, ip6_addr;
-        uint8_t expired_prefixlen;
-        uint32_t lifetime_preferred, lifetime_valid;
-
-        r = sd_ndisc_get_expired_prefix(link->ndisc_router_discovery,
-                                        &expired_prefix, &expired_prefixlen);
-        if (r < 0)
-                return r;
-
-        r = sd_dhcp6_client_get_lease(link->dhcp6_client, &lease);
-        if (r < 0)
-                return r;
-
-        log_link_info(link, "IPv6 prefix "SD_NDISC_ADDRESS_FORMAT_STR"/%d expired",
-                      SD_NDISC_ADDRESS_FORMAT_VAL(*expired_prefix),
-                      expired_prefixlen);
-
-        sd_dhcp6_lease_reset_address_iter(lease);
-
-        while (sd_dhcp6_lease_get_address(lease, &ip6_addr,
-                                                &lifetime_preferred,
-                                                &lifetime_valid) >= 0) {
-
-                r = sd_ndisc_prefix_match(expired_prefix, expired_prefixlen,
-                                        &ip6_addr);
-                if (r < 0)
-                        continue;
-
-                log_link_info(link, "IPv6 prefix length updated "SD_NDISC_ADDRESS_FORMAT_STR"/%d", SD_NDISC_ADDRESS_FORMAT_VAL(ip6_addr), 128);
-
-                dhcp6_address_change(link, &ip6_addr, lifetime_preferred, lifetime_valid);
-        }
-
-        return 0;
-}
index 6bc8815..5c92df4 100644 (file)
@@ -146,7 +146,6 @@ int link_set_timezone(Link *link, const char *timezone);
 int ipv4ll_configure(Link *link);
 int dhcp4_configure(Link *link);
 int dhcp6_configure(Link *link, bool information_request);
-int dhcp6_prefix_expired(Link *link);
 int ndisc_configure(Link *link);
 
 bool link_lldp_enabled(Link *link);
index 1721cb3..ab4bb51 100644 (file)
@@ -38,6 +38,7 @@ static void ndisc_router_handler(sd_ndisc *nd, int event, void *userdata) {
 
         switch(event) {
         case SD_NDISC_EVENT_ROUTER_ADVERTISMENT_NONE:
+        case SD_NDISC_EVENT_ROUTER_ADVERTISMENT_PREFIX_EXPIRED:
                 return;
 
         case SD_NDISC_EVENT_ROUTER_ADVERTISMENT_OTHER:
@@ -50,12 +51,6 @@ static void ndisc_router_handler(sd_ndisc *nd, int event, void *userdata) {
 
                 break;
 
-        case SD_NDISC_EVENT_ROUTER_ADVERTISMENT_PREFIX_EXPIRED:
-                if (!link->rtnl_extended_attrs)
-                        dhcp6_prefix_expired(link);
-
-                break;
-
         default:
                 if (event < 0)
                         log_link_warning_errno(link, event, "IPv6 Neighbor Discover error: %m");