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");