[ospfd] cleanup NSM neighbour delete through a new Deleted NSM state

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

	* ospf_nsm.h: Add a NSM_Deleted neighbour state, to act as dummy
	  state indicating the neighbour is to be deleted.
	* ospf_nsm.c: (general) Use the NSM_Deleted state to delete
	  neighbours, thus allowing code to be slightly more obvious
	  in its flow.
	  (nsm_timer_set) Add NSM_Deleted. Add another timer the code
	  missed.
	  (nsm_kill_nbr) No need for special case call to nsm_change_state
	  anymore.
	  Make the assert and error-handling for same case more readable
	  (Andrew Schorr)
	  Remove the call to ospf_nbr_delete, nsm_change_state can do
	  this generally now via NSM_Deleted.
	  (struct ... NSM) Add the dummy NSM_Deleted state, the 3 events
	  that can lead to nsm_kill_nbr all now transition the NBR to
	  NSM_Deleted and the general change_state function can be left
	  to do the work.
	  (ospf_nsm_event) Special casing of events and early-return can
	  be removed now.
	  On transition into Deleted, delete the nbr.
	* ospf_dump.c: (ospf_nsm_state_msg) Add Deleted.
diff --git a/ospfd/ospf_nsm.h b/ospfd/ospf_nsm.h
index fe42f7a..1121dae 100644
--- a/ospfd/ospf_nsm.h
+++ b/ospfd/ospf_nsm.h
@@ -26,15 +26,16 @@
 
 /* OSPF Neighbor State Machine State. */
 #define NSM_DependUpon          0
-#define NSM_Down		1
-#define NSM_Attempt		2
-#define NSM_Init		3
-#define NSM_TwoWay		4
-#define NSM_ExStart		5
-#define NSM_Exchange		6
-#define NSM_Loading		7
-#define NSM_Full		8
-#define OSPF_NSM_STATE_MAX      9
+#define NSM_Deleted		1
+#define NSM_Down		2
+#define NSM_Attempt		3
+#define NSM_Init		4
+#define NSM_TwoWay		5
+#define NSM_ExStart		6
+#define NSM_Exchange		7
+#define NSM_Loading		8
+#define NSM_Full		9
+#define OSPF_NSM_STATE_MAX     10
 
 /* OSPF Neighbor State Machine Event. */
 #define NSM_NoEvent	        0