diff options
| author | Denis Ovsienko <infrastation@yandex.ru> | 2011-12-30 21:55:49 +0400 | 
|---|---|---|
| committer | Denis Ovsienko <infrastation@yandex.ru> | 2012-01-26 11:42:48 +0400 | 
| commit | d660f698427277ce695a5b756f3143c8304274ea (patch) | |
| tree | f26d5f72724cae8ee9844f30ba8e0aaf7b7c3006 /zebra/interface.h | |
| parent | 6134b875f39986564aced5e2d7329fcd852f17f4 (diff) | |
zebra: justify some IPv6 ND RA timers wrt RFC
There was a regression introduced with the previous commit:
"ipv6 nd home-agent-lifetime 1800000" appeared by default in every
interface section of running-config, although this  command is
invalid in this context. Troubleshooting and bugfixing of the issue
tracked out several bugs in router advertisement procedures, some of
which are fixed in this commit.
* zebra/interface.c
  * if_zebra_new_hook(): update to treat -1 as "uninitialized"
  * nd_dump_vty(): idem
* zebra/rtadv.c
  * rtadv_send_packet(): update processing of "router lifetime" field,
    "home agent" option and "home agent lifetime" field to conform to
    RFC6275 better
  * ipv6_nd_ra_interval_msec(): update MaxRtrAdvInterval range check,
    make sure it never exceeds (initialized) AdvDefaultLifetime
  * ipv6_nd_ra_interval(): idem
  * ipv6_nd_ra_lifetime(): update AdvDefaultLifetime range check, make
    sure it never falls below MaxRtrAdvInterval
  * ipv6_nd_homeagent_lifetime(): update HomeAgentLifetime range check
  * no_ipv6_nd_ra_lifetime(): update to treat -1 as "uninitialized"
  * no_ipv6_nd_homeagent_lifetime(): idem
  * rtadv_config_write(): idem
Diffstat (limited to 'zebra/interface.h')
| -rw-r--r-- | zebra/interface.h | 5 | 
1 files changed, 2 insertions, 3 deletions
| diff --git a/zebra/interface.h b/zebra/interface.h index 0cf66403..ea3fec57 100644 --- a/zebra/interface.h +++ b/zebra/interface.h @@ -69,7 +69,7 @@ struct rtadvconf       MUST be no greater than .75 * MaxRtrAdvInterval.       Default: 0.33 * MaxRtrAdvInterval */ -  int MinRtrAdvInterval; +  int MinRtrAdvInterval; /* This field is currently unused. */  #define RTADV_MIN_RTR_ADV_INTERVAL (0.33 * RTADV_MAX_RTR_ADV_INTERVAL)    /* Unsolicited Router Advertisements' interval timer. */ @@ -131,8 +131,7 @@ struct rtadvconf       Default: 3 * MaxRtrAdvInterval */    int AdvDefaultLifetime; -#define RTADV_ADV_DEFAULT_LIFETIME (3 * RTADV_MAX_RTR_ADV_INTERVAL) - +#define RTADV_MAX_RTRLIFETIME 9000 /* 2.5 hours */    /* A list of prefixes to be placed in Prefix Information options in       Router Advertisement messages sent from the interface. | 
