[ospfd] Fix virtual-link handling in nbrs route-table, exposed by bug#234 fix

2006-04-03 Paul Jakma <paul.jakma@sun.com>

	* (general) Fix issues with handling of Vlinks and entries
	  in the nbrs route-table which were highlighted by the
	  nsm/nbr_self fixes from bug #234. Many thanks to Juergen
	  Kammer for his help and efforts in testing out debug patches to
	  pinpoint the issue.
	* ospf_interface.c: (ospf_vl_new) Add nbr_self for Vlink.
	* ospf_neighbor.c: (ospf_nbr_key) new static function, helper
	  to create key in nbrs table for a given nbr.
	  (ospf_nbr_delete) Use ospf_nbr_key. Add an assert() to
	  document an expected state.
	  (ospf_nbr_add_self) Ditto.
	  (ospf_nbr_lookup_by_addr) Add an assert.
	* ospf_nsm.c: (nsm_kill_nbr) Can never kill the nbr_self
	  psuedo-neighbour.
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index 8df0280..52adc42 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -910,6 +910,7 @@
   if (IS_DEBUG_OSPF_EVENT)
     zlog_debug ("ospf_vl_new(): set associated area to the backbone");
 
+  ospf_nbr_add_self (voi);
   ospf_area_add_if (voi->area, voi);
 
   ospf_if_stream_set (voi);