[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