Re: [systemd-devel] [PATCH 3/3] networkd-dhcp6: Do not handle prefix expiry

2015-03-27 Thread Tom Gundersen
On Wed, Mar 25, 2015 at 2:37 PM, Patrik Flykt
patrik.fl...@linux.intel.com wrote:
 Expiring prefixes need not be handled anymore as the kernel has been
 instructed not to create routes for DHCPv6 assigned addresses via the
 IFA_F_NOPREFIXROUTE flag.

Great stuff. Please push all three!

-t

 ---
  src/network/networkd-dhcp6.c | 42 +-
  1 file changed, 1 insertion(+), 41 deletions(-)

 diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
 index 283a7d6..e863f4b 100644
 --- a/src/network/networkd-dhcp6.c
 +++ b/src/network/networkd-dhcp6.c
 @@ -86,42 +86,6 @@ static int dhcp6_address_update(Link *link, struct 
 in6_addr *ip6_addr,
  return r;
  }

 -static 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_icmp6_ra_get_expired_prefix(link-icmp6_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;
 -
 -sd_dhcp6_lease_reset_address_iter(lease);
 -
 -while (sd_dhcp6_lease_get_address(lease, ip6_addr,
 -lifetime_preferred,
 -lifetime_valid) = 0) {
 -
 -r = sd_icmp6_prefix_match(expired_prefix, expired_prefixlen,
 -ip6_addr);
 -if (r = 0) {
 -r = dhcp6_address_update(link, ip6_addr, 128,
 -lifetime_preferred,
 -lifetime_valid);
 -
 -return r;
 -}
 -}
 -
 -return 0;
 -}
 -
  static int dhcp6_lease_address_acquired(sd_dhcp6_client *client, Link *link) 
 {
  int r;
  sd_dhcp6_lease *lease;
 @@ -310,6 +274,7 @@ static void icmp6_router_handler(sd_icmp6_nd *nd, int 
 event, void *userdata) {

  switch(event) {
  case ICMP6_EVENT_ROUTER_ADVERTISMENT_NONE:
 +case ICMP6_EVENT_ROUTER_ADVERTISMENT_PREFIX_EXPIRED:
  return;

  case ICMP6_EVENT_ROUTER_ADVERTISMENT_TIMEOUT:
 @@ -319,11 +284,6 @@ static void icmp6_router_handler(sd_icmp6_nd *nd, int 
 event, void *userdata) {

  break;

 -case ICMP6_EVENT_ROUTER_ADVERTISMENT_PREFIX_EXPIRED:
 -dhcp6_prefix_expired(link);
 -
 -break;
 -
  default:
  if (event  0)
  log_link_warning(link, ICMPv6 error: %s,
 --
 2.1.4

 ___
 systemd-devel mailing list
 systemd-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/systemd-devel
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 3/3] networkd-dhcp6: Do not handle prefix expiry

2015-03-27 Thread Patrik Flykt
On Fri, 2015-03-27 at 12:05 +0100, Tom Gundersen wrote:
 On Wed, Mar 25, 2015 at 2:37 PM, Patrik Flykt
 patrik.fl...@linux.intel.com wrote:
  Expiring prefixes need not be handled anymore as the kernel has been
  instructed not to create routes for DHCPv6 assigned addresses via the
  IFA_F_NOPREFIXROUTE flag.
 
 Great stuff. Please push all three!

And pushed!

Patrik

___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] [PATCH 3/3] networkd-dhcp6: Do not handle prefix expiry

2015-03-25 Thread Patrik Flykt
Expiring prefixes need not be handled anymore as the kernel has been
instructed not to create routes for DHCPv6 assigned addresses via the
IFA_F_NOPREFIXROUTE flag.
---
 src/network/networkd-dhcp6.c | 42 +-
 1 file changed, 1 insertion(+), 41 deletions(-)

diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
index 283a7d6..e863f4b 100644
--- a/src/network/networkd-dhcp6.c
+++ b/src/network/networkd-dhcp6.c
@@ -86,42 +86,6 @@ static int dhcp6_address_update(Link *link, struct in6_addr 
*ip6_addr,
 return r;
 }
 
-static 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_icmp6_ra_get_expired_prefix(link-icmp6_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;
-
-sd_dhcp6_lease_reset_address_iter(lease);
-
-while (sd_dhcp6_lease_get_address(lease, ip6_addr,
-lifetime_preferred,
-lifetime_valid) = 0) {
-
-r = sd_icmp6_prefix_match(expired_prefix, expired_prefixlen,
-ip6_addr);
-if (r = 0) {
-r = dhcp6_address_update(link, ip6_addr, 128,
-lifetime_preferred,
-lifetime_valid);
-
-return r;
-}
-}
-
-return 0;
-}
-
 static int dhcp6_lease_address_acquired(sd_dhcp6_client *client, Link *link) {
 int r;
 sd_dhcp6_lease *lease;
@@ -310,6 +274,7 @@ static void icmp6_router_handler(sd_icmp6_nd *nd, int 
event, void *userdata) {
 
 switch(event) {
 case ICMP6_EVENT_ROUTER_ADVERTISMENT_NONE:
+case ICMP6_EVENT_ROUTER_ADVERTISMENT_PREFIX_EXPIRED:
 return;
 
 case ICMP6_EVENT_ROUTER_ADVERTISMENT_TIMEOUT:
@@ -319,11 +284,6 @@ static void icmp6_router_handler(sd_icmp6_nd *nd, int 
event, void *userdata) {
 
 break;
 
-case ICMP6_EVENT_ROUTER_ADVERTISMENT_PREFIX_EXPIRED:
-dhcp6_prefix_expired(link);
-
-break;
-
 default:
 if (event  0)
 log_link_warning(link, ICMPv6 error: %s,
-- 
2.1.4

___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel