[radvd-devel-l] DecrementLifetimes option

Reuben Hawkins reubenhwk at gmail.com
Wed Apr 13 21:55:16 EDT 2011


On Tue, Apr 12, 2011 at 2:57 PM, Mark Smith <
radvd at 02a76c927861ca7413a122f2a73a0d37.nosense.org> wrote:

> Hi Reuben,
>
> On Wed, 6 Apr 2011 21:46:29 +0930
> Mark Smith <radvd at 02a76c927861ca7413a122f2a73a0d37.nosense.org> wrote:
>
> > Hi Reuben,
> >
> > On Mon, 4 Apr 2011 07:30:16 -0700
> > Reuben Hawkins <reubenhwk at gmail.com> wrote:
> >
> > >
> > >
> > > Hi Mark,
> > >
> > > It looks like everything is working.  I applied the patch.  If you
> would
> > > like to submit another patch with a some logging, I'll apply it too.
> >
> > Happy to do that.
> >
> <snip>
>
> Here's what I've come up with.
>
> The debug message for when a prefix will cease being advertised is -
>
> [Apr 13 07:20:17] radvd: Will cease advertising 2001:db8::/64%dummy0,
> preferred lifetime is 0
>
> While the debug messages for when the prefix lifetimes is reset is -
>
> [Apr 13 07:23:58] radvd: Resetting prefix lifetimes
> [Apr 13 07:23:58] radvd: 2001:db8::/64%dummy0 plft reset from 0 to 10
> secs
> [Apr 13 07:23:58] radvd: 2001:db8::/64%dummy0 vlft reset from 14385 to
> 14400 secs
>
> Patch shown below and attached. This should apply to cvs update 1.117
>
> Regards,
> Mark.
>
>
> diff --git a/radvd.c b/radvd.c
> index 3485c5a..3d8ece7 100644
> --- a/radvd.c
> +++ b/radvd.c
> @@ -685,6 +685,7 @@ void reset_prefix_lifetimes(void)
>  {
>        struct Interface *iface;
>        struct AdvPrefix *prefix;
> +       char pfx_str[INET6_ADDRSTRLEN];
>
>
>        flog(LOG_INFO, "Resetting prefix lifetimes\n");
> @@ -696,6 +697,9 @@ void reset_prefix_lifetimes(void)
>                {
>                        if (prefix->DecrementLifetimesFlag)
>                        {
> +                               print_addr(&prefix->Prefix, pfx_str);
> +                               dlog(LOG_DEBUG, 4, "%s/%u%%%s plft reset
> from %u to %u secs", pfx_str, prefix->PrefixLen, iface->Name,
> prefix->curr_preferredlft, prefix->AdvPreferredLifetime);
> +                               dlog(LOG_DEBUG, 4, "%s/%u%%%s vlft reset
> from %u to %u secs", pfx_str, prefix->PrefixLen, iface->Name,
> prefix->curr_validlft, prefix->AdvValidLifetime);
>                                 prefix->curr_validlft =
>                                                prefix->AdvValidLifetime;
>                                prefix->curr_preferredlft =
> diff --git a/send.c b/send.c
> index 6d12ff6..d1ecc83 100644
> --- a/send.c
> +++ b/send.c
> @@ -100,6 +100,16 @@ static void decrement_lifetime(const time_t secs,
> uint32_t *lifetime)
>        }
>  }
>
> +static void cease_adv_pfx_msg(const char *if_name, struct in6_addr *pfx,
> const int pfx_len)
> +{
> +       char pfx_str[INET6_ADDRSTRLEN];
> +
> +       print_addr(pfx, pfx_str);
> +
> +       dlog(LOG_DEBUG, 3, "Will cease advertising %s/%u%%%s, preferred
> lifetime 0", pfx_str, pfx_len, if_name);
> +
> +}
> +
>  int
>  send_ra(struct Interface *iface, struct in6_addr *dest)
>  {
> @@ -239,6 +249,8 @@ send_ra(struct Interface *iface, struct in6_addr *dest)
>
>
>  decrement_lifetime(secs_since_last_ra,
>
>  &prefix->curr_preferredlft);
> +                                       if (prefix->curr_preferredlft == 0)
> +
> cease_adv_pfx_msg(iface->Name, &prefix->Prefix, prefix->PrefixLen);
>                                 }
>                                pinfo->nd_opt_pi_valid_time     =
> htonl(prefix->curr_validlft);
>                                pinfo->nd_opt_pi_preferred_time =
> htonl(prefix->curr_preferredlft);
>
>
>
>
>
>
>
>
>
> --
> radvd-devel-l mailing list  :  radvd-devel-l at litech.org
> http://lists.litech.org/listinfo/radvd-devel-l
>



Logging patch applied...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.litech.org/pipermail/radvd-devel-l/attachments/20110413/7cde5078/attachment.html>


More information about the radvd-devel-l mailing list