From 0b9c383064988b16c4298b7e5bc3d90508f57438 Mon Sep 17 00:00:00 2001 From: Christoph Petrausch <263448+hikhvar@users.noreply.github.com> Date: Thu, 2 May 2019 12:40:05 +0200 Subject: [PATCH] Move fsm state number constants to metrics package. (#207) This enables users of the bio-rd library to reuse the state numbering. Otherwise users have to maintain their own constats to avoid magic numbers. --- protocols/bgp/metrics/bgp_peer_metrics.go | 10 ++++++++ protocols/bgp/server/metrics_service.go | 26 ++++++-------------- protocols/bgp/server/metrics_service_test.go | 12 ++++----- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/protocols/bgp/metrics/bgp_peer_metrics.go b/protocols/bgp/metrics/bgp_peer_metrics.go index 4c70b843..f12b3275 100644 --- a/protocols/bgp/metrics/bgp_peer_metrics.go +++ b/protocols/bgp/metrics/bgp_peer_metrics.go @@ -6,6 +6,16 @@ import ( bnet "github.com/bio-routing/bio-rd/net" ) +const ( + StateDown = 0 + StateIdle = 1 + StateConnect = 2 + StateActive = 3 + StateOpenSent = 4 + StateOpenConfirm = 5 + StateEstablished = 6 +) + // BGPPeerMetrics provides metrics for one BGP session type BGPPeerMetrics struct { // IP is the remote IP of the peer diff --git a/protocols/bgp/server/metrics_service.go b/protocols/bgp/server/metrics_service.go index 1f1fa90b..b2b457e2 100644 --- a/protocols/bgp/server/metrics_service.go +++ b/protocols/bgp/server/metrics_service.go @@ -4,16 +4,6 @@ import ( "github.com/bio-routing/bio-rd/protocols/bgp/metrics" ) -const ( - stateDown = 0 - stateIdle = 1 - stateConnect = 2 - stateActive = 3 - stateOpenSent = 4 - stateOpenConfirm = 5 - stateEstablished = 6 -) - type metricsService struct { server *bgpServer } @@ -51,7 +41,7 @@ func (b *metricsService) metricsForPeer(peer *peer) *metrics.BGPPeerMetrics { fsm := fsms[0] m.State = b.statusFromFSM(fsm) - m.Up = m.State == stateEstablished + m.Up = m.State == metrics.StateEstablished if m.Up { m.Since = fsm.establishedTime @@ -83,18 +73,18 @@ func (b *metricsService) metricsForFamily(family *fsmAddressFamily) *metrics.BGP func (b *metricsService) statusFromFSM(fsm *FSM) uint8 { switch fsm.state.(type) { case *idleState: - return stateIdle + return metrics.StateIdle case *connectState: - return stateConnect + return metrics.StateConnect case *activeState: - return stateActive + return metrics.StateActive case *openSentState: - return stateOpenSent + return metrics.StateOpenSent case *openConfirmState: - return stateOpenConfirm + return metrics.StateOpenConfirm case *establishedState: - return stateEstablished + return metrics.StateEstablished } - return stateDown + return metrics.StateDown } diff --git a/protocols/bgp/server/metrics_service_test.go b/protocols/bgp/server/metrics_service_test.go index f98ec61e..486f7bff 100644 --- a/protocols/bgp/server/metrics_service_test.go +++ b/protocols/bgp/server/metrics_service_test.go @@ -57,7 +57,7 @@ func TestMetrics(t *testing.T) { UpdatesSent: 4, VRF: "inet.0", Up: true, - State: stateEstablished, + State: metrics.StateEstablished, Since: establishedTime, AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ { @@ -95,7 +95,7 @@ func TestMetrics(t *testing.T) { ASN: 202739, LocalASN: 201701, VRF: "inet.0", - State: stateIdle, + State: metrics.StateIdle, AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ { AFI: packet.IPv4AFI, @@ -128,7 +128,7 @@ func TestMetrics(t *testing.T) { ASN: 202739, LocalASN: 201701, VRF: "inet.0", - State: stateActive, + State: metrics.StateActive, AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ { AFI: packet.IPv4AFI, @@ -161,7 +161,7 @@ func TestMetrics(t *testing.T) { ASN: 202739, LocalASN: 201701, VRF: "inet.0", - State: stateOpenSent, + State: metrics.StateOpenSent, AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ { AFI: packet.IPv4AFI, @@ -194,7 +194,7 @@ func TestMetrics(t *testing.T) { ASN: 202739, LocalASN: 201701, VRF: "inet.0", - State: stateOpenConfirm, + State: metrics.StateOpenConfirm, AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ { AFI: packet.IPv4AFI, @@ -227,7 +227,7 @@ func TestMetrics(t *testing.T) { ASN: 202739, LocalASN: 201701, VRF: "inet.0", - State: stateConnect, + State: metrics.StateConnect, AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ { AFI: packet.IPv4AFI, -- GitLab