diff options
author | Carl Baldwin <carl@ecbaldwin.net> | 2019-10-11 17:32:47 -0600 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@gmail.com> | 2019-10-23 10:51:38 +0900 |
commit | 98a539a2e921151cf37d28ce0f2789ec3d003457 (patch) | |
tree | de12cf799c052489c2f06298f804a3f23a311278 /pkg/server/server.go | |
parent | 5c5deac88845f71ca75d08a6f43574702a057853 (diff) |
Split Reset into three methods
The Reset method was difficult to understand. The reason is that it
was called in three different ways and did different things in each
case. It is easier to read when the three different modes are each
their own method.
This came up as I was looking deeper into the threading model around
policies. I think this change makes it easier to understand the code.
Diffstat (limited to 'pkg/server/server.go')
-rw-r--r-- | pkg/server/server.go | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/pkg/server/server.go b/pkg/server/server.go index 4ee64cf6..2312b39d 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -307,7 +307,7 @@ func (s *BgpServer) passConnToPeer(conn *net.TCPConn) { peer.fsm.lock.RLock() policy := peer.fsm.pConf.ApplyPolicy peer.fsm.lock.RUnlock() - s.policy.Reset(nil, map[string]config.ApplyPolicy{peer.ID(): policy}) + s.policy.SetPeerPolicy(peer.ID(), policy) s.neighborMap[remoteAddr] = peer peer.startFSMHandler() s.broadcastPeerState(peer, bgp.BGP_FSM_ACTIVE, nil) @@ -2111,7 +2111,7 @@ func (s *BgpServer) StartBgp(ctx context.Context, r *api.StartBgpRequest) error s.globalRib = table.NewTableManager(rfs) s.rsRib = table.NewTableManager(rfs) - if err := s.policy.Reset(&config.RoutingPolicy{}, map[string]config.ApplyPolicy{}); err != nil { + if err := s.policy.Initialize(); err != nil { return err } s.bgpConfig.Global = *c @@ -2812,7 +2812,7 @@ func (s *BgpServer) addNeighbor(c *config.Neighbor) error { } peer := newPeer(&s.bgpConfig.Global, c, rib, s.policy) s.addIncoming(peer.fsm.incomingCh) - s.policy.Reset(nil, map[string]config.ApplyPolicy{peer.ID(): c.ApplyPolicy}) + s.policy.SetPeerPolicy(peer.ID(), c.ApplyPolicy) s.neighborMap[addr] = peer if name := c.Config.PeerGroup; name != "" { s.peerGroupMap[name].AddMember(*c) @@ -2996,7 +2996,7 @@ func (s *BgpServer) updateNeighbor(c *config.Neighbor) (needsSoftResetIn bool, e "Topic": "Peer", "Key": addr, }).Info("Update ApplyPolicy") - s.policy.Reset(nil, map[string]config.ApplyPolicy{peer.ID(): c.ApplyPolicy}) + s.policy.SetPeerPolicy(peer.ID(), c.ApplyPolicy) peer.fsm.pConf.ApplyPolicy = c.ApplyPolicy needsSoftResetIn = true } |