Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Aug 2009 09:03:08 GMT
From:      dikshie <dikshie@sfc.wide.ad.jp>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/137510: patch for quagga
Message-ID:  <200908070903.n77938KB056498@www.freebsd.org>
Resent-Message-ID: <200908070910.n779A57V033611@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         137510
>Category:       ports
>Synopsis:       patch for quagga
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Aug 07 09:10:04 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     dikshie
>Release:        FreeBSD-7.2
>Organization:
Keio University
>Environment:
FreeBSD ipv6.ppk.itb.ac.id 7.2-STABLE FreeBSD 7.2-STABLE #56: Mon Jul 13 17:35:47 WIT 2009     dikshie@ipv6.ppk.itb.ac.id:/usr/obj/usr/src/sys/PPK  i386

>Description:
ospf6d bug on quagga-0.99.14.
read bug #541 on quagga's bugzilla for detail.

>How-To-Repeat:

>Fix:
patch is made by tomh at tomh dot org

Patch attached with submission follows:

Index: ospf6d/ospf6_lsa.c
===================================================================
--- ospf6d/ospf6_lsa.c	(revision 21)
+++ ospf6d/ospf6_lsa.c	(working copy)
@@ -207,9 +207,11 @@
     zlog_warn ("LSA: quagga_gettime failed, may fail LSA AGEs: %s",
                safe_strerror (errno));
 
-  if (lsa->header->age >= htons (MAXAGE))
+  if (ntohs (lsa->header->age) >= MAXAGE)
     {
-      /* LSA may have been prematurely aged */
+      /* ospf6_lsa_premature_aging () sets age to MAXAGE; when using
+         relative time, we cannot compare against lsa birth time, so
+         we catch this special case here. */
       lsa->header->age = htons (MAXAGE);
       return MAXAGE;
     }
@@ -245,11 +247,6 @@
   THREAD_OFF (lsa->expire);
   THREAD_OFF (lsa->refresh);
 
-  /* 
-   * The below technique to age out LSA does not work when using relative time 
-   *
-  memset (&lsa->birth, 0, sizeof (struct timeval));
-   */
   lsa->header->age = htons (MAXAGE);
   thread_execute (master, ospf6_lsa_expire, lsa, 0);
 }


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908070903.n77938KB056498>