From 41ef6e5b62da686bc81d55c6b0d0b887bfa78d5b Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Sun, 9 Aug 2015 23:30:45 +0900 Subject: server: support adminDown'ed peer startup The config file should be like: [Neighbors] [[Neighbors.NeighborList]] [Neighbors.NeighborList.NeighborConfig] PeerAs = 65001 NeighborAddress = "10.0.255.1" [Neighbors.NeighborList.NeighborState] AdminDown = true Signed-off-by: FUJITA Tomonori --- server/fsm.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/fsm.go b/server/fsm.go index ffba35f1..2b287dfb 100644 --- a/server/fsm.go +++ b/server/fsm.go @@ -130,13 +130,17 @@ func (fsm *FSM) bgpMessageStateUpdate(MessageType uint8, isIn bool) { } func NewFSM(gConf *config.Global, pConf *config.Neighbor) *FSM { + adminState := ADMIN_STATE_UP + if pConf.NeighborState.AdminDown == true { + adminState = ADMIN_STATE_DOWN + } fsm := &FSM{ gConf: gConf, pConf: pConf, state: bgp.BGP_FSM_IDLE, connCh: make(chan net.Conn), opensentHoldTime: float64(HOLDTIME_OPENSENT), - adminState: ADMIN_STATE_UP, + adminState: adminState, adminStateCh: make(chan AdminState, 1), getActiveCh: make(chan struct{}), } -- cgit v1.2.3