On Sun, Mar 25, 2012 at 08:58:53PM -0500, Chris Wopat wrote:
> Claudio and crew,
> 
> When you enable OSPF-TE (http://tools.ietf.org/html/rfc3630) on a
> Cisco router, OpenOSPFD crashes with "Invalid LSA type".  Assuming you
> have a functional setup, adding this (the last line) will recreate:
> 
> router ospf 1
>  mpls traffic-eng router-id Loopback0
>  mpls traffic-eng area 0
> 
> 
> OpenBSD Log:
> 
> Mar 25 19:54:27 openbsd-lab ospfd[223]: fatal in rde: rt_calc: invalid LSA 
> type
> Mar 25 19:54:27 openbsd-lab ospfd[12417]: lost child: route decision
> engine exited
> 

Thanks for the log and tcpdumps. It seems you're the first person to try
opaque LSA against ospfd. Can you give the following diff a spin?
I think this will solve the problems.

-- 
:wq Claudio

Index: rde_spf.c
===================================================================
RCS file: /cvs/src/usr.sbin/ospfd/rde_spf.c,v
retrieving revision 1.73
diff -u -p -r1.73 rde_spf.c
--- rde_spf.c   24 May 2011 20:21:51 -0000      1.73
+++ rde_spf.c   30 Mar 2012 20:24:42 -0000
@@ -262,6 +262,9 @@ rt_calc(struct vertex *v, struct area *a
                }
 
                break;
+       case LSA_TYPE_AREA_OPAQ:
+               /* nothing to calculate */
+               break;
        default:
                /* as-external LSA are stored in a different tree */
                fatalx("rt_calc: invalid LSA type");
@@ -338,6 +341,9 @@ asext_calc(struct vertex *v)
                rt_update(addr, mask2prefixlen(v->lsa->data.asext.mask),
                    &v->nexthop, v->type, v->cost, cost2, a, adv_rtr, type,
                    DT_NET, 0, ntohl(v->lsa->data.asext.ext_tag));
+               break;
+       case LSA_TYPE_AS_OPAQ:
+               /* nothing to calculate */
                break;
        default:
                fatalx("asext_calc: invalid LSA type");

Reply via email to