]> git.sommitrealweird.co.uk Git - quagga-debian.git/blob - bgpd/bgp_fsm_quagga.dot
2b9bee8499683f7ac312e4bcc800206d6c6a89d6
[quagga-debian.git] / bgpd / bgp_fsm_quagga.dot
1 digraph {
2   rankdir=LR
3   //concentrate=true
4   nojustify="true"
5
6   Idle
7   Connect
8   Active
9   OpenSent
10   OpenConfirm
11   Established
12   Clearing
13   Idle -> Deleted
14   Configured -> Idle
15   
16   Idle -> Connect [ label="BGP_Start\l/bgp_start\l" ]
17   Idle -> Idle [ label="BGP_Stop\l|TCP_connection_open\l|TCP_connection_closed\l|TCP_fatal_error\l/bgp_stop\l"]
18
19   Connect -> Connect [ label="ConnectRetry_timer_expired\l/bgp_reconnect\l" ]
20   Connect -> Idle [ label="BGP_Stop\l|TCP_connection_open\l|Receive_NOTIFICATION_message\l/bgp_stop\l" ]
21   Connect -> Idle [ label="TCP_fatal_error\l/bgp_connect_fail\l" ]
22   Connect -> Idle [ label="Hold_Timer_expired\l|KeepAlive_timer_expired\l|Receive_OPEN_message\l|Receive_KEEPALIVE_message\l|Receive_UPDATE_message\l|Clearing_Completed\l/bgp_ignore"]
23   Connect -> OpenSent [ label="TCP_connection_open\l/bgp_connect_success\l" ]
24   Connect -> Active [ label="TCP_connection_open_failed\l/bgp_connect_fail\l" ]
25
26   Active -> Idle [ label="BGP_Stop\l|TCP_connection_closed\l/bgp_stop\l" ]
27   Active -> Idle [ label="Receive_NOTIFICATION_message\l/bgp_stop_with_error\l" ]
28   Active -> Idle [ label="TCP_fatal_error\l|Hold_Timer_expired\l|KeepAlive_timer_expired\l|Receive_OPEN_message\l|Receive_KEEPALIVE_message\l|Receive_UPDATE_message\l|Clearing_Completed\l/bgp_ignore\l" ]
29   Active -> OpenSent [ label="TCP_connection_open\l/bgp_connect_success\l" ]
30   Active -> Connect [ label="ConnectRetry_timer_expiredl/bgp_start\l" ]
31
32   Accept -> Active [ label="Raise TCP_connection_open on Active" ]
33
34   OpenSent -> Idle [ label="BGP_Stop\l/bgp_stop\l" ]
35   OpenSent -> Idle [ label="ConnectRetry_timer_expired\l|Clearing_Completed\l|KeepAlive_timer_expired\l/bgp_ignore\l" ]
36   OpenSent -> Idle [ label="Hold_Timer_expired\l/bgp_fsm_holdtime_expire\l"]
37   OpenSent -> Idle [ label="Receive_KEEPALIVE_message\l|Receive_UPDATE_message\l/bgp_fsm_event_error" ]
38   OpenSent -> Idle [ label="Receive_NOTIFICATION_message\l/bgp_stop_with_error" ]
39   OpenSent -> Active [ label="TCP_connection_open\l|TCP_connection_closed\l|TCP_connection_open_failed\l|TCP_fatal_error\l/bgp_stop\l"]
40   OpenSent -> OpenConfirm [ label="Receive_OPEN_message\l/bgp_fsm_open" ]
41   
42   OpenConfirm -> Idle [ label="BGP_Stop\l|TCP_connection_open\l|TCP_connection_closed\l|TCP_connection_open_failed\l|TCP_fatal_error\l/bgp_stop\l"]
43   OpenConfirm -> Idle [ label="Hold_Timer_expired\l/bgp_fsm_holdtime_expire" ]
44   OpenConfirm -> Idle [ label="ConnectRetry_timer_expired\l|Receive_OPEN_message\l|Receive_UPDATE_message\l|Clearing_Completed\l/bgp_ignore"]
45   OpenConfirm -> Idle [ label="Receive_NOTIFICATION_message\l/bgp_stop_with_error\l" ]
46   OpenConfirm -> Established [ label="Receive_KEEPALIVE_message\l/bgp_establish\l" ]
47
48   Established -> Clearing [ label="BGP_Stop\l|TCP_connection_open\l|TCP_connection_closed\l|TCP_connection_open_failed\l|TCP_fatal_error\l|ConnectRetry_timer_expired\l|Hold_Timer_expired\l|Receive_OPEN_message\l/bgp_stop\l"]
49   Established -> Idle [ label="Clearing_Completed\l/bgp_ignore" ]
50   Established -> Clearing [ label="Receive_NOTIFICATION_message\l/bgp_stop_with_error"] 
51   
52   Clearing -> Idle [ label="Clearing_Completed\l/bgp_clearing_completed" ]
53   subgraph cluster_pre_collision_detect {
54     label="Prior to collision detection"
55     bgcolor=lightgray
56     Connect Accept Active OpenSent OpenConfirm
57   }
58
59 }