From c94eb13807c8444b64ab74889ff426b1cec829b8 Mon Sep 17 00:00:00 2001
From: Christoph Petrausch <christoph.petrausch@inovex.de>
Date: Tue, 29 May 2018 05:56:48 +0200
Subject: [PATCH] Changed rib to routingtable.RouteTableClient interface

---
 protocols/bgp/server/fsm.go              | 5 ++---
 protocols/bgp/server/peer.go             | 8 +++-----
 routingtable/adjRIBIn/adj_rib_in_test.go | 4 ++++
 routingtable/client_interface.go         | 1 +
 routingtable/client_manager_test.go      | 5 +++++
 5 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/protocols/bgp/server/fsm.go b/protocols/bgp/server/fsm.go
index fc342e82..f8f20547 100644
--- a/protocols/bgp/server/fsm.go
+++ b/protocols/bgp/server/fsm.go
@@ -16,7 +16,6 @@ import (
 	"github.com/bio-routing/bio-rd/routingtable/adjRIBIn"
 	"github.com/bio-routing/bio-rd/routingtable/adjRIBOut"
 	"github.com/bio-routing/bio-rd/routingtable/adjRIBOutAddPath"
-	"github.com/bio-routing/bio-rd/routingtable/locRIB"
 	log "github.com/sirupsen/logrus"
 	tomb "gopkg.in/tomb.v2"
 )
@@ -92,7 +91,7 @@ type FSM struct {
 
 	adjRIBIn     *adjRIBIn.AdjRIBIn
 	adjRIBOut    routingtable.RouteTableClient
-	rib          *locRIB.LocRIB
+	rib          routingtable.RouteTableClient
 	updateSender routingtable.RouteTableClient
 
 	capAddPathSend bool
@@ -109,7 +108,7 @@ type msgRecvErr struct {
 	con *net.TCPConn
 }
 
-func NewFSM(peer *Peer, c config.Peer, rib *locRIB.LocRIB) *FSM {
+func NewFSM(peer *Peer, c config.Peer, rib routingtable.RouteTableClient) *FSM {
 	fsm := &FSM{
 		peer:              peer,
 		state:             Idle,
diff --git a/protocols/bgp/server/peer.go b/protocols/bgp/server/peer.go
index bf18c5d5..0f4b3514 100644
--- a/protocols/bgp/server/peer.go
+++ b/protocols/bgp/server/peer.go
@@ -3,25 +3,23 @@ package server
 import (
 	"net"
 
+	"github.com/bio-routing/bio-rd/config"
 	"github.com/bio-routing/bio-rd/protocols/bgp/packet"
 	"github.com/bio-routing/bio-rd/routingtable"
-	"github.com/bio-routing/bio-rd/routingtable/locRIB"
-
-	"github.com/bio-routing/bio-rd/config"
 )
 
 type Peer struct {
 	addr          net.IP
 	asn           uint32
 	fsm           *FSM
-	rib           *locRIB.LocRIB
+	rib           routingtable.RouteTableClient
 	routerID      uint32
 	addPathSend   routingtable.ClientOptions
 	addPathRecv   bool
 	optOpenParams []packet.OptParam
 }
 
-func NewPeer(c config.Peer, rib *locRIB.LocRIB) (*Peer, error) {
+func NewPeer(c config.Peer, rib routingtable.RouteTableClient) (*Peer, error) {
 	p := &Peer{
 		addr:          c.PeerAddress,
 		asn:           c.PeerAS,
diff --git a/routingtable/adjRIBIn/adj_rib_in_test.go b/routingtable/adjRIBIn/adj_rib_in_test.go
index 5659ab80..a994e0f5 100644
--- a/routingtable/adjRIBIn/adj_rib_in_test.go
+++ b/routingtable/adjRIBIn/adj_rib_in_test.go
@@ -34,6 +34,10 @@ func (m *RTMockClient) Register(routingtable.RouteTableClient) {
 	return
 }
 
+func (m *RTMockClient) RegisterWithOptions(routingtable.RouteTableClient, routingtable.ClientOptions) {
+	return
+}
+
 func (m *RTMockClient) Unregister(routingtable.RouteTableClient) {
 	return
 }
diff --git a/routingtable/client_interface.go b/routingtable/client_interface.go
index 0800ceec..e7190c5b 100644
--- a/routingtable/client_interface.go
+++ b/routingtable/client_interface.go
@@ -11,5 +11,6 @@ type RouteTableClient interface {
 	RemovePath(net.Prefix, *route.Path) bool
 	UpdateNewClient(RouteTableClient) error
 	Register(RouteTableClient)
+	RegisterWithOptions(RouteTableClient, ClientOptions)
 	Unregister(RouteTableClient)
 }
diff --git a/routingtable/client_manager_test.go b/routingtable/client_manager_test.go
index af250785..78e2e58c 100644
--- a/routingtable/client_manager_test.go
+++ b/routingtable/client_manager_test.go
@@ -25,6 +25,11 @@ func (m MockClient) UpdateNewClient(RouteTableClient) error {
 func (m MockClient) Register(RouteTableClient) {
 	return
 }
+
+func (m MockClient) RegisterWithOptions(RouteTableClient, ClientOptions) {
+	return
+}
+
 func (m MockClient) Unregister(RouteTableClient) {
 	return
 }
-- 
GitLab