Skip to content
Snippets Groups Projects
Commit 0b9c3830 authored by Christoph Petrausch's avatar Christoph Petrausch Committed by Daniel Czerwonk
Browse files

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.
parent 4dcf85c9
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,16 @@ import ( ...@@ -6,6 +6,16 @@ import (
bnet "github.com/bio-routing/bio-rd/net" 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 // BGPPeerMetrics provides metrics for one BGP session
type BGPPeerMetrics struct { type BGPPeerMetrics struct {
// IP is the remote IP of the peer // IP is the remote IP of the peer
......
...@@ -4,16 +4,6 @@ import ( ...@@ -4,16 +4,6 @@ import (
"github.com/bio-routing/bio-rd/protocols/bgp/metrics" "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 { type metricsService struct {
server *bgpServer server *bgpServer
} }
...@@ -51,7 +41,7 @@ func (b *metricsService) metricsForPeer(peer *peer) *metrics.BGPPeerMetrics { ...@@ -51,7 +41,7 @@ func (b *metricsService) metricsForPeer(peer *peer) *metrics.BGPPeerMetrics {
fsm := fsms[0] fsm := fsms[0]
m.State = b.statusFromFSM(fsm) m.State = b.statusFromFSM(fsm)
m.Up = m.State == stateEstablished m.Up = m.State == metrics.StateEstablished
if m.Up { if m.Up {
m.Since = fsm.establishedTime m.Since = fsm.establishedTime
...@@ -83,18 +73,18 @@ func (b *metricsService) metricsForFamily(family *fsmAddressFamily) *metrics.BGP ...@@ -83,18 +73,18 @@ func (b *metricsService) metricsForFamily(family *fsmAddressFamily) *metrics.BGP
func (b *metricsService) statusFromFSM(fsm *FSM) uint8 { func (b *metricsService) statusFromFSM(fsm *FSM) uint8 {
switch fsm.state.(type) { switch fsm.state.(type) {
case *idleState: case *idleState:
return stateIdle return metrics.StateIdle
case *connectState: case *connectState:
return stateConnect return metrics.StateConnect
case *activeState: case *activeState:
return stateActive return metrics.StateActive
case *openSentState: case *openSentState:
return stateOpenSent return metrics.StateOpenSent
case *openConfirmState: case *openConfirmState:
return stateOpenConfirm return metrics.StateOpenConfirm
case *establishedState: case *establishedState:
return stateEstablished return metrics.StateEstablished
} }
return stateDown return metrics.StateDown
} }
...@@ -57,7 +57,7 @@ func TestMetrics(t *testing.T) { ...@@ -57,7 +57,7 @@ func TestMetrics(t *testing.T) {
UpdatesSent: 4, UpdatesSent: 4,
VRF: "inet.0", VRF: "inet.0",
Up: true, Up: true,
State: stateEstablished, State: metrics.StateEstablished,
Since: establishedTime, Since: establishedTime,
AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ AddressFamilies: []*metrics.BGPAddressFamilyMetrics{
{ {
...@@ -95,7 +95,7 @@ func TestMetrics(t *testing.T) { ...@@ -95,7 +95,7 @@ func TestMetrics(t *testing.T) {
ASN: 202739, ASN: 202739,
LocalASN: 201701, LocalASN: 201701,
VRF: "inet.0", VRF: "inet.0",
State: stateIdle, State: metrics.StateIdle,
AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ AddressFamilies: []*metrics.BGPAddressFamilyMetrics{
{ {
AFI: packet.IPv4AFI, AFI: packet.IPv4AFI,
...@@ -128,7 +128,7 @@ func TestMetrics(t *testing.T) { ...@@ -128,7 +128,7 @@ func TestMetrics(t *testing.T) {
ASN: 202739, ASN: 202739,
LocalASN: 201701, LocalASN: 201701,
VRF: "inet.0", VRF: "inet.0",
State: stateActive, State: metrics.StateActive,
AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ AddressFamilies: []*metrics.BGPAddressFamilyMetrics{
{ {
AFI: packet.IPv4AFI, AFI: packet.IPv4AFI,
...@@ -161,7 +161,7 @@ func TestMetrics(t *testing.T) { ...@@ -161,7 +161,7 @@ func TestMetrics(t *testing.T) {
ASN: 202739, ASN: 202739,
LocalASN: 201701, LocalASN: 201701,
VRF: "inet.0", VRF: "inet.0",
State: stateOpenSent, State: metrics.StateOpenSent,
AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ AddressFamilies: []*metrics.BGPAddressFamilyMetrics{
{ {
AFI: packet.IPv4AFI, AFI: packet.IPv4AFI,
...@@ -194,7 +194,7 @@ func TestMetrics(t *testing.T) { ...@@ -194,7 +194,7 @@ func TestMetrics(t *testing.T) {
ASN: 202739, ASN: 202739,
LocalASN: 201701, LocalASN: 201701,
VRF: "inet.0", VRF: "inet.0",
State: stateOpenConfirm, State: metrics.StateOpenConfirm,
AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ AddressFamilies: []*metrics.BGPAddressFamilyMetrics{
{ {
AFI: packet.IPv4AFI, AFI: packet.IPv4AFI,
...@@ -227,7 +227,7 @@ func TestMetrics(t *testing.T) { ...@@ -227,7 +227,7 @@ func TestMetrics(t *testing.T) {
ASN: 202739, ASN: 202739,
LocalASN: 201701, LocalASN: 201701,
VRF: "inet.0", VRF: "inet.0",
State: stateConnect, State: metrics.StateConnect,
AddressFamilies: []*metrics.BGPAddressFamilyMetrics{ AddressFamilies: []*metrics.BGPAddressFamilyMetrics{
{ {
AFI: packet.IPv4AFI, AFI: packet.IPv4AFI,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment