diff --git a/protocols/bgp/server/fsm2.go b/protocols/bgp/server/fsm2.go index 1bd789b3df2d68a08380a87382c91fa480b6a42d..6e1682c71b7aaf47ff2858a30b199fc07cb43297 100644 --- a/protocols/bgp/server/fsm2.go +++ b/protocols/bgp/server/fsm2.go @@ -26,8 +26,8 @@ type state interface { run() (state, string) } -// FSM2 implements the BGP finite state machine (RFC4271) -type FSM2 struct { +// FSM implements the BGP finite state machine (RFC4271) +type FSM struct { peer *Peer eventCh chan int con net.Conn @@ -72,7 +72,7 @@ type FSM2 struct { } // NewPassiveFSM2 initiates a new passive FSM -func NewPassiveFSM2(peer *Peer, con *net.TCPConn) *FSM2 { +func NewPassiveFSM2(peer *Peer, con *net.TCPConn) *FSM { fsm := newFSM2(peer) fsm.con = con fsm.state = newIdleState(fsm) @@ -80,15 +80,15 @@ func NewPassiveFSM2(peer *Peer, con *net.TCPConn) *FSM2 { } // NewActiveFSM2 initiates a new passive FSM -func NewActiveFSM2(peer *Peer) *FSM2 { +func NewActiveFSM2(peer *Peer) *FSM { fsm := newFSM2(peer) fsm.active = true fsm.state = newIdleState(fsm) return fsm } -func newFSM2(peer *Peer) *FSM2 { - return &FSM2{ +func newFSM2(peer *Peer) *FSM { + return &FSM{ connectRetryTime: time.Minute, peer: peer, eventCh: make(chan int), @@ -102,17 +102,17 @@ func newFSM2(peer *Peer) *FSM2 { } } -func (fsm *FSM2) start() { +func (fsm *FSM) start() { go fsm.run() go fsm.tcpConnector() return } -func (fsm *FSM2) activate() { +func (fsm *FSM) activate() { fsm.eventCh <- AutomaticStart } -func (fsm *FSM2) run() { +func (fsm *FSM) run() { next, reason := fsm.state.run() for { newState := stateName(next) @@ -160,11 +160,11 @@ func stateName(s state) string { } } -func (fsm *FSM2) cease() { +func (fsm *FSM) cease() { fsm.eventCh <- Cease } -func (fsm *FSM2) tcpConnector() error { +func (fsm *FSM) tcpConnector() error { for { select { case <-fsm.initiateCon: @@ -189,11 +189,11 @@ func (fsm *FSM2) tcpConnector() error { } } -func (fsm *FSM2) tcpConnect() { +func (fsm *FSM) tcpConnect() { fsm.initiateCon <- struct{}{} } -func (fsm *FSM2) msgReceiver() error { +func (fsm *FSM) msgReceiver() error { for { msg, err := recvMsg(fsm.con) if err != nil { @@ -204,21 +204,21 @@ func (fsm *FSM2) msgReceiver() error { } } -func (fsm *FSM2) startConnectRetryTimer() { +func (fsm *FSM) startConnectRetryTimer() { fsm.connectRetryTimer = time.NewTimer(fsm.connectRetryTime) } -func (fsm *FSM2) resetConnectRetryTimer() { +func (fsm *FSM) resetConnectRetryTimer() { if !fsm.connectRetryTimer.Reset(fsm.connectRetryTime) { <-fsm.connectRetryTimer.C } } -func (fsm *FSM2) resetConnectRetryCounter() { +func (fsm *FSM) resetConnectRetryCounter() { fsm.connectRetryCounter = 0 } -func (fsm *FSM2) sendOpen() error { +func (fsm *FSM) sendOpen() error { msg := packet.SerializeOpenMsg(&packet.BGPOpen{ Version: BGPVersion, AS: uint16(fsm.peer.localASN), @@ -235,7 +235,7 @@ func (fsm *FSM2) sendOpen() error { return nil } -func (fsm *FSM2) sendNotification(errorCode uint8, errorSubCode uint8) error { +func (fsm *FSM) sendNotification(errorCode uint8, errorSubCode uint8) error { msg := packet.SerializeNotificationMsg(&packet.BGPNotification{}) _, err := fsm.con.Write(msg) @@ -246,7 +246,7 @@ func (fsm *FSM2) sendNotification(errorCode uint8, errorSubCode uint8) error { return nil } -func (fsm *FSM2) sendKeepalive() error { +func (fsm *FSM) sendKeepalive() error { msg := packet.SerializeKeepaliveMsg() _, err := fsm.con.Write(msg) diff --git a/protocols/bgp/server/fsm_active.go b/protocols/bgp/server/fsm_active.go index f8fa6b39c933215e0482f7838b89507073d8c515..a84f910d945b473f655465239ae1b08c61d94ebc 100644 --- a/protocols/bgp/server/fsm_active.go +++ b/protocols/bgp/server/fsm_active.go @@ -7,10 +7,10 @@ import ( ) type activeState struct { - fsm *FSM2 + fsm *FSM } -func newActiveState(fsm *FSM2) *activeState { +func newActiveState(fsm *FSM) *activeState { return &activeState{ fsm: fsm, } diff --git a/protocols/bgp/server/fsm_connect.go b/protocols/bgp/server/fsm_connect.go index cc9ce060b12289059099948114f3929d0e2a6c38..70142ea9702d2673f6c9a2450fc1ec2fb7f50c76 100644 --- a/protocols/bgp/server/fsm_connect.go +++ b/protocols/bgp/server/fsm_connect.go @@ -7,10 +7,10 @@ import ( ) type connectState struct { - fsm *FSM2 + fsm *FSM } -func newConnectState(fsm *FSM2) *connectState { +func newConnectState(fsm *FSM) *connectState { return &connectState{ fsm: fsm, } diff --git a/protocols/bgp/server/fsm_established.go b/protocols/bgp/server/fsm_established.go index 02f5ac244ddbc5034f7d447705c4d7b74378bfdd..87ef4ba1f935e8ae8068c2a63ce0789eb7db0bf7 100644 --- a/protocols/bgp/server/fsm_established.go +++ b/protocols/bgp/server/fsm_established.go @@ -14,10 +14,10 @@ import ( ) type establishedState struct { - fsm *FSM2 + fsm *FSM } -func newEstablishedState(fsm *FSM2) *establishedState { +func newEstablishedState(fsm *FSM) *establishedState { return &establishedState{ fsm: fsm, } diff --git a/protocols/bgp/server/fsm_idle.go b/protocols/bgp/server/fsm_idle.go index ce4cc105a7a079f15817485b0486686b1ae29eb1..4480bb53579d46147a0a84e69cc17126ea6bf1ea 100644 --- a/protocols/bgp/server/fsm_idle.go +++ b/protocols/bgp/server/fsm_idle.go @@ -5,11 +5,11 @@ import ( ) type idleState struct { - fsm *FSM2 + fsm *FSM newStateReason string } -func newIdleState(fsm *FSM2) *idleState { +func newIdleState(fsm *FSM) *idleState { return &idleState{ fsm: fsm, } diff --git a/protocols/bgp/server/fsm_manager.go b/protocols/bgp/server/fsm_manager.go index 5511704c7950bf89a7eeb7ba5ff7d82843b8348b..2ed78f3958805e7a9b6eac6075adafb7d196aa26 100644 --- a/protocols/bgp/server/fsm_manager.go +++ b/protocols/bgp/server/fsm_manager.go @@ -3,12 +3,12 @@ package server import "net" type fsmManager struct { - fsms map[string][]*FSM2 + fsms map[string][]*FSM } func newFSMManager() *fsmManager { return &fsmManager{ - fsms: make(map[string][]*FSM2, 0), + fsms: make(map[string][]*FSM, 0), } } @@ -16,10 +16,10 @@ func (m *fsmManager) resolveCollision(addr net.IP) { } -func (m *fsmManager) newFSMPassive() *FSM2 { - return &FSM2{} +func (m *fsmManager) newFSMPassive() *FSM { + return &FSM{} } -func (m *fsmManager) newFSMActive() *FSM2 { - return &FSM2{} +func (m *fsmManager) newFSMActive() *FSM { + return &FSM{} } diff --git a/protocols/bgp/server/fsm_open_confirm.go b/protocols/bgp/server/fsm_open_confirm.go index 1959c21e57e47da3a3c491683383110e23cc4f70..d2d25e4f533ec30d9a5d15aec25504d055c45f54 100644 --- a/protocols/bgp/server/fsm_open_confirm.go +++ b/protocols/bgp/server/fsm_open_confirm.go @@ -8,10 +8,10 @@ import ( ) type openConfirmState struct { - fsm *FSM2 + fsm *FSM } -func newOpenConfirmState(fsm *FSM2) *openConfirmState { +func newOpenConfirmState(fsm *FSM) *openConfirmState { return &openConfirmState{ fsm: fsm, } diff --git a/protocols/bgp/server/fsm_open_sent.go b/protocols/bgp/server/fsm_open_sent.go index cf628699e22bd85266bc4f9a77eb07a098e50c2c..63680636d8e0c65afe1dad9ec9d1280c34e9c37d 100644 --- a/protocols/bgp/server/fsm_open_sent.go +++ b/protocols/bgp/server/fsm_open_sent.go @@ -10,10 +10,10 @@ import ( ) type openSentState struct { - fsm *FSM2 + fsm *FSM } -func newOpenSentState(fsm *FSM2) *openSentState { +func newOpenSentState(fsm *FSM) *openSentState { return &openSentState{ fsm: fsm, } diff --git a/protocols/bgp/server/peer.go b/protocols/bgp/server/peer.go index 23b4f16152f0b9ca2b81e8156160154f69111e8b..26f183ce7b7572f71a6edc6982122eccf88fccf2 100644 --- a/protocols/bgp/server/peer.go +++ b/protocols/bgp/server/peer.go @@ -16,7 +16,7 @@ type Peer struct { addr net.IP peerASN uint32 localASN uint32 - fsms []*FSM2 + fsms []*FSM fsmsMu sync.Mutex rib routingtable.RouteTableClient routerID uint32 @@ -30,7 +30,7 @@ type Peer struct { exportFilter *filter.Filter } -func (p *Peer) collisionHandling(callingFSM *FSM2) bool { +func (p *Peer) collisionHandling(callingFSM *FSM) bool { p.fsmsMu.Lock() defer p.fsmsMu.Unlock() @@ -88,7 +88,7 @@ func NewPeer(c config.Peer, rib routingtable.RouteTableClient, server *BGPServer addr: c.PeerAddress, peerASN: c.PeerAS, localASN: c.LocalAS, - fsms: make([]*FSM2, 0), + fsms: make([]*FSM, 0), rib: rib, addPathSend: c.AddPathSend, addPathRecv: c.AddPathRecv, diff --git a/protocols/bgp/server/update_helper.go b/protocols/bgp/server/update_helper.go index b749f1433ec7cea2a6d1b026161d1b6758f98a3b..fdb73fee2aead719b76a7bef7ba9209e46891857 100644 --- a/protocols/bgp/server/update_helper.go +++ b/protocols/bgp/server/update_helper.go @@ -10,7 +10,7 @@ import ( log "github.com/sirupsen/logrus" ) -func pathAttribues(p *route.Path, fsm *FSM2) (*packet.PathAttribute, error) { +func pathAttribues(p *route.Path, fsm *FSM) (*packet.PathAttribute, error) { asPathPA, err := packet.ParseASPathStr(strings.TrimRight(fmt.Sprintf("%d %s", fsm.peer.localASN, p.BGPPath.ASPath), " ")) if err != nil { return nil, fmt.Errorf("Unable to parse AS path: %v", err) diff --git a/protocols/bgp/server/update_sender.go b/protocols/bgp/server/update_sender.go index e087b7f256ccf05945b29ac715bffc167e723686..76c4eadc827ab809af23d09df9e809f1ed4b4a47 100644 --- a/protocols/bgp/server/update_sender.go +++ b/protocols/bgp/server/update_sender.go @@ -15,11 +15,11 @@ import ( // UpdateSender converts table changes into BGP update messages type UpdateSender struct { routingtable.ClientManager - fsm *FSM2 + fsm *FSM iBGP bool } -func newUpdateSender(fsm *FSM2) *UpdateSender { +func newUpdateSender(fsm *FSM) *UpdateSender { return &UpdateSender{ fsm: fsm, iBGP: fsm.peer.localASN == fsm.peer.peerASN, diff --git a/protocols/bgp/server/update_sender_add_path.go b/protocols/bgp/server/update_sender_add_path.go index 7d22bcaa0eea6dce7747bad27237d7f3dd0401eb..0dac801374e167c3bd5e8a38304ba12f8af74f3c 100644 --- a/protocols/bgp/server/update_sender_add_path.go +++ b/protocols/bgp/server/update_sender_add_path.go @@ -12,11 +12,11 @@ import ( // UpdateSenderAddPath converts table changes into BGP update messages with add path type UpdateSenderAddPath struct { routingtable.ClientManager - fsm *FSM2 + fsm *FSM iBGP bool } -func newUpdateSenderAddPath(fsm *FSM2) *UpdateSenderAddPath { +func newUpdateSenderAddPath(fsm *FSM) *UpdateSenderAddPath { return &UpdateSenderAddPath{ fsm: fsm, iBGP: fsm.peer.localASN == fsm.peer.peerASN,