天天看点

ODL(opendaylight)BGP会话状态机

ODL源码中的BGP状态机有问题,一些场景下会导致会话状态挂死,这里按照ODL划分的4个状态,给出一个状态机驱动表:

0 IDEL
1 OPEN_SEND
2 OPEN_CONFIRM
3 FINISH

EVENT        |  0  |  1  |  2  |  3  |
-------------|-----|-----|-----|-----|
TCP_UP       | 1 A | 1 - | 2 - | 3 - |
RECV_OPEN    | 2 B | 2 C | 2 - | 3 - |
RECV_KA      | 0 - | 1 - | 3 - | 3 - |
OPEN_TIMEOUT | 0 - | 0 D | 2 - | 3 - |
KA_TIMEOUT   | 0 - | 1 - | 0 D | 0 D |
TCP_DOWN     | 0 - | 0 E | 0 E | 0 E |
RECV_NOTIFY  | 0 - | 0 E | 0 E | 0 E |

ACT_A: 发送open消息,启动等待open定时器
ACT_B: 发送open消息,启动等待keepalive定时器
ACT_C: 发送keepalive消息,启动等待keep alive定时器
ACT_D: 发送notify,关闭会话
ACT_E: 关闭会话           

复制