From 6ad74e74d266294f7a3104c4d6956574dd78d34e Mon Sep 17 00:00:00 2001 From: Daniel Czerwonk <daniel@dan-nrw.de> Date: Tue, 17 Jul 2018 08:37:10 +0200 Subject: [PATCH] fsmAddressFamily now aware of add-path options per family --- protocols/bgp/server/fsm_address_family.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/protocols/bgp/server/fsm_address_family.go b/protocols/bgp/server/fsm_address_family.go index daa5465e..27b55417 100644 --- a/protocols/bgp/server/fsm_address_family.go +++ b/protocols/bgp/server/fsm_address_family.go @@ -29,6 +29,9 @@ type fsmAddressFamily struct { updateSender *UpdateSender + addPathSend routingtable.ClientOptions + addPathRecv bool + initialized bool } @@ -40,6 +43,8 @@ func newFSMAddressFamily(afi uint16, safi uint8, params *familyParameters, fsm * rib: params.rib, importFilter: params.importFilter, exportFilter: params.exportFilter, + addPathRecv: params.addPathRecv, + addPathSend: params.addPathSend, } } @@ -51,17 +56,18 @@ func (f *fsmAddressFamily) init(n *routingtable.Neighbor) { f.adjRIBIn.Register(f.rib) f.adjRIBOut = adjRIBOut.New(n, f.exportFilter) - clientOptions := routingtable.ClientOptions{ - BestOnly: true, - } - if f.fsm.options.AddPathRX { - clientOptions = f.fsm.peer.addPathSend - } f.updateSender = newUpdateSender(f.fsm, f.afi, f.safi) f.updateSender.Start(time.Millisecond * 5) f.adjRIBOut.Register(f.updateSender) + + clientOptions := routingtable.ClientOptions{ + BestOnly: true, + } + if f.fsm.options.AddPathRX { + clientOptions = f.addPathSend + } f.rib.RegisterWithOptions(f.adjRIBOut, clientOptions) } -- GitLab