summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_common.h
diff options
context:
space:
mode:
authorChris Hall <GMCH@hestia.halldom.com>2010-01-08 00:51:19 +0000
committerChris Hall <GMCH@hestia.halldom.com>2010-01-08 00:51:19 +0000
commit6b5024b3c14b0acf5d4ec05f7ea78a7323c96d59 (patch)
tree89956e840ea5de81b5b564732032d93b95638af0 /bgpd/bgp_common.h
parent18874dc91124118a678984241b18953beb8bb9d9 (diff)
downloadquagga-6b5024b3c14b0acf5d4ec05f7ea78a7323c96d59.tar.bz2
quagga-6b5024b3c14b0acf5d4ec05f7ea78a7323c96d59.tar.xz
Continuing work-in-progress
modified: bgpd/Makefile.am modified: bgpd/bgp.h modified: bgpd/bgp_common.h modified: bgpd/bgp_connection.c modified: bgpd/bgp_connection.h modified: bgpd/bgp_engine.h modified: bgpd/bgp_fsm.c modified: bgpd/bgp_network.c modified: bgpd/bgp_network.h new file: bgpd/bgp_peer_index.c new file: bgpd/bgp_peer_index.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: lib/memtypes.c modified: lib/mqueue.h
Diffstat (limited to 'bgpd/bgp_common.h')
-rw-r--r--bgpd/bgp_common.h62
1 files changed, 43 insertions, 19 deletions
diff --git a/bgpd/bgp_common.h b/bgpd/bgp_common.h
index b3b58cac..15fc026a 100644
--- a/bgpd/bgp_common.h
+++ b/bgpd/bgp_common.h
@@ -48,8 +48,9 @@ typedef struct bgp_connection* bgp_connection ;
typedef struct bgp_open_state* bgp_open_state ;
/*==============================================================================
- * Both session and connection require this.
+ * Both session and connection require these
*/
+
typedef enum bgp_connection_ordinal bgp_connection_ordinal_t ;
enum bgp_connection_ordinal
{
@@ -59,31 +60,54 @@ enum bgp_connection_ordinal
bgp_connection_count = 2
} ;
-/*==============================================================================
- * Both session and connection require this.
- */
-typedef enum bgp_stopped_causes bgp_stopped_cause_t ;
-enum bgp_stopped_causes
+typedef enum bgp_session_states bgp_session_state_t ;
+enum bgp_session_states
+{
+ bgp_session_min_state = 0,
+
+ bgp_session_sIdle = 0, /* session contents "unset" */
+
+ bgp_session_sEnabled = 1, /* attempting to connect */
+ bgp_session_sEstablished = 2,
+
+ bgp_session_sStopped = 3, /* for whatever reason */
+
+ bgp_session_max_state = 3
+} ;
+
+typedef enum bgp_session_events bgp_session_event_t ;
+enum bgp_session_events
{
- bgp_stopped_min_cause = 0,
+ bgp_session_min_event = 0,
+ bgp_session_null_event = 0,
+
+ bgp_session_eEnabled, /* enabled by Peering Engine */
+
+ bgp_session_eStart, /* coming out of fsm_Idle */
+ bgp_session_eRetry, /* loop round in Connect/Accept */
+
+ bgp_session_eTCP_connect, /* successful Connect/Accept */
+
+ bgp_session_eCollision, /* connection closed to resolve collision */
- bgp_stopped_not = 0, /* not stopped (yet) */
+ bgp_session_eOpen_accept, /* accepted an OPEN message */
+ bgp_session_eOpen_reject, /* had to reject an OPEN message */
+ bgp_session_eEstablished, /* session state -> sEstablished */
- bgp_stopped_admin = 1, /* Routeing Engine Stop */
- /* Sent Cease NOTIFICATION */
+ bgp_session_eInvalid_msg, /* BGP message invalid */
+ bgp_session_eFSM_error, /* unexpected BGP message received */
+ bgp_session_eNOM_recv, /* NOTIFICATION message received */
- bgp_stopped_collision = 2, /* Collision Resolution Stop */
- bgp_stopped_loser = 3, /* Loser in race to Established state */
+ bgp_session_eTCP_failed, /* TCP connection failed to come up */
+ bgp_session_eTCP_dropped, /* TCP connection dropped */
+ bgp_session_eTCP_error, /* some socket level error */
- bgp_stopped_error = 4, /* */
- bgp_stopped_recv_nom = 5, /* Received NOTIFICATION */
+ bgp_session_eExpired, /* HoldTime expired */
- bgp_stopped_connect_fail = 5,
- bgo_stopped_connect_drop = 6,
- bgp_stopped_fatal_error = 8,
- bgp_stopped_invalid = 9, /* some internal error */
+ bgp_session_eInvalid, /* invalid internal event */
+ bgp_session_eDisabled, /* disabled by Peering Engine */
- bgp_stopped_max_cause = 8
+ bgp_session_max_event = bgp_session_eDisabled
} ;
/*==============================================================================