diff --git a/protocols/bgp/server/fsm_address_family.go b/protocols/bgp/server/fsm_address_family.go
index 891e91281385785f3ae3f6a965f01eb8606cbbee..092572c50463ff4109efa669f798e484d218e5ee 100644
--- a/protocols/bgp/server/fsm_address_family.go
+++ b/protocols/bgp/server/fsm_address_family.go
@@ -30,24 +30,24 @@ type fsmAddressFamily struct {
 	updateSender *UpdateSender
 
 	addPathSend         routingtable.ClientOptions
-	addPathRXConfigured bool
-	addPathRX           bool
+	addPathTXConfigured bool
+	addPathTX           bool
 
 	multiProtocol bool
 
 	initialized bool
 }
 
-func newFSMAddressFamily(afi uint16, safi uint8, params *familyParameters, fsm *FSM) *fsmAddressFamily {
+func newFSMAddressFamily(afi uint16, safi uint8, family *peerAddressFamily, fsm *FSM) *fsmAddressFamily {
 	return &fsmAddressFamily{
 		afi:                 afi,
 		safi:                safi,
 		fsm:                 fsm,
-		rib:                 params.rib,
-		importFilter:        params.importFilter,
-		exportFilter:        params.exportFilter,
-		addPathRXConfigured: params.addPathRXConfigured,
-		addPathSend:         params.addPathSend,
+		rib:                 family.rib,
+		importFilter:        family.importFilter,
+		exportFilter:        family.exportFilter,
+		addPathTXConfigured: family.addPathReceive, // at this point we switch from peers view to our view
+		addPathSend:         family.addPathSend,
 	}
 }
 
@@ -58,7 +58,7 @@ func (f *fsmAddressFamily) init(n *routingtable.Neighbor) {
 	contributingASNs.Add(f.fsm.peer.localASN)
 	f.adjRIBIn.Register(f.rib)
 
-	f.adjRIBOut = adjRIBOut.New(n, f.exportFilter, f.addPathRX)
+	f.adjRIBOut = adjRIBOut.New(n, f.exportFilter, f.addPathTX)
 
 	f.updateSender = newUpdateSender(f.fsm, f.afi, f.safi)
 	f.updateSender.Start(time.Millisecond * 5)
@@ -68,7 +68,7 @@ func (f *fsmAddressFamily) init(n *routingtable.Neighbor) {
 	clientOptions := routingtable.ClientOptions{
 		BestOnly: true,
 	}
-	if f.addPathRX {
+	if f.addPathTX {
 		clientOptions = f.addPathSend
 	}
 	f.rib.RegisterWithOptions(f.adjRIBOut, clientOptions)
diff --git a/protocols/bgp/server/fsm_open_sent.go b/protocols/bgp/server/fsm_open_sent.go
index c40318a1f08731b520d2a3d97b45168524c09a75..664e0d19399efd933fef5ee42330c7b5f2016a48 100644
--- a/protocols/bgp/server/fsm_open_sent.go
+++ b/protocols/bgp/server/fsm_open_sent.go
@@ -201,18 +201,18 @@ func (s *openSentState) processAddPathCapability(addPathCap packet.AddPathCapabi
 	switch addPathCap.SendReceive {
 	case packet.AddPathReceive:
 		if !f.addPathSend.BestOnly {
-			f.addPathRX = true
+			f.addPathTX = true
 		}
 	case packet.AddPathSend:
-		if f.addPathRXConfigured {
-			f.addPathRX = true
+		if f.addPathTXConfigured {
+			f.addPathTX = true
 		}
 	case packet.AddPathSendReceive:
 		if !f.addPathSend.BestOnly {
-			f.addPathRX = true
+			f.addPathTX = true
 		}
-		if f.addPathRXConfigured {
-			f.addPathRX = true
+		if f.addPathTXConfigured {
+			f.addPathTX = true
 		}
 	}
 }
diff --git a/protocols/bgp/server/fsm_test.go b/protocols/bgp/server/fsm_test.go
index 69ead1ff5b129e2d187c89b661bd9d0ac3cd8338..ba0e1429e41d4ccd4d65837142a8a7d456d6df6a 100644
--- a/protocols/bgp/server/fsm_test.go
+++ b/protocols/bgp/server/fsm_test.go
@@ -18,7 +18,7 @@ func TestFSM255UpdatesIPv4(t *testing.T) {
 	fsmA := newFSM(&peer{
 		addr:     bnet.IPv4FromOctets(169, 254, 100, 100),
 		routerID: bnet.IPv4FromOctets(1, 1, 1, 1).ToUint32(),
-		ipv4: &familyParameters{
+		ipv4: &peerAddressFamily{
 			rib:          locRIB.New(),
 			importFilter: filter.NewAcceptAllFilter(),
 			exportFilter: filter.NewAcceptAllFilter(),
@@ -132,7 +132,7 @@ func TestFSM255UpdatesIPv6(t *testing.T) {
 	fsmA := newFSM(&peer{
 		addr:     bnet.IPv6FromBlocks(0x2001, 0x678, 0x1e0, 0xffff, 0, 0, 0, 1),
 		routerID: bnet.IPv4FromOctets(1, 1, 1, 1).ToUint32(),
-		ipv6: &familyParameters{
+		ipv6: &peerAddressFamily{
 			rib:          locRIB.New(),
 			importFilter: filter.NewAcceptAllFilter(),
 			exportFilter: filter.NewAcceptAllFilter(),
diff --git a/protocols/bgp/server/peer.go b/protocols/bgp/server/peer.go
index a83e3be683c108b57c44caa4077a81ea6b212866..dd877d77f4eee02eb6a21578b9dbaf54a58336a9 100644
--- a/protocols/bgp/server/peer.go
+++ b/protocols/bgp/server/peer.go
@@ -38,18 +38,18 @@ type peer struct {
 	routeReflectorClient bool
 	clusterID            uint32
 
-	ipv4 *familyParameters
-	ipv6 *familyParameters
+	ipv4 *peerAddressFamily
+	ipv6 *peerAddressFamily
 }
 
-type familyParameters struct {
+type peerAddressFamily struct {
 	rib *locRIB.LocRIB
 
 	importFilter *filter.Filter
 	exportFilter *filter.Filter
 
-	addPathSend         routingtable.ClientOptions
-	addPathRXConfigured bool
+	addPathSend    routingtable.ClientOptions
+	addPathReceive bool
 }
 
 func (p *peer) snapshot() PeerInfo {
@@ -142,12 +142,12 @@ func newPeer(c config.Peer, server *bgpServer) (*peer, error) {
 	}
 
 	if c.IPv4 != nil {
-		p.ipv4 = &familyParameters{
-			rib:                 c.IPv4.RIB,
-			importFilter:        filterOrDefault(c.IPv4.ImportFilter),
-			exportFilter:        filterOrDefault(c.IPv4.ExportFilter),
-			addPathRXConfigured: c.IPv4.AddPathRecv,
-			addPathSend:         c.IPv4.AddPathSend,
+		p.ipv4 = &peerAddressFamily{
+			rib:            c.IPv4.RIB,
+			importFilter:   filterOrDefault(c.IPv4.ImportFilter),
+			exportFilter:   filterOrDefault(c.IPv4.ExportFilter),
+			addPathReceive: c.IPv4.AddPathRecv,
+			addPathSend:    c.IPv4.AddPathSend,
 		}
 	}
 
@@ -163,12 +163,12 @@ func newPeer(c config.Peer, server *bgpServer) (*peer, error) {
 	caps = append(caps, asn4Capability(c))
 
 	if c.IPv6 != nil {
-		p.ipv6 = &familyParameters{
-			rib:                 c.IPv6.RIB,
-			importFilter:        filterOrDefault(c.IPv6.ImportFilter),
-			exportFilter:        filterOrDefault(c.IPv6.ExportFilter),
-			addPathRXConfigured: c.IPv6.AddPathRecv,
-			addPathSend:         c.IPv6.AddPathSend,
+		p.ipv6 = &peerAddressFamily{
+			rib:            c.IPv6.RIB,
+			importFilter:   filterOrDefault(c.IPv6.ImportFilter),
+			exportFilter:   filterOrDefault(c.IPv6.ExportFilter),
+			addPathReceive: c.IPv6.AddPathRecv,
+			addPathSend:    c.IPv6.AddPathSend,
 		}
 		caps = append(caps, multiProtocolCapability(packet.IPv6AFI))
 	}
diff --git a/protocols/bgp/server/update_sender.go b/protocols/bgp/server/update_sender.go
index cca63244557ed3514ea200c6378321775f56a6b0..5d5804acb6f940c686bfed578ab1edbd5c125129 100644
--- a/protocols/bgp/server/update_sender.go
+++ b/protocols/bgp/server/update_sender.go
@@ -45,7 +45,7 @@ func newUpdateSender(fsm *FSM, afi uint16, safi uint8) *UpdateSender {
 		toSend:        make(map[string]*pathPfxs),
 		options: &packet.EncodeOptions{
 			Use32BitASN: fsm.supports4OctetASN,
-			UseAddPath:  f.addPathRX,
+			UseAddPath:  f.addPathTX,
 		},
 	}
 }
diff --git a/protocols/bgp/server/update_sender_test.go b/protocols/bgp/server/update_sender_test.go
index c611c6ef80dc24ace20449ab66b9cb64579c4575..359e2da3148fcd6a449be2ffc2c929a8e22c9f29 100644
--- a/protocols/bgp/server/update_sender_test.go
+++ b/protocols/bgp/server/update_sender_test.go
@@ -874,20 +874,20 @@ func TestSender(t *testing.T) {
 
 		rib := locRIB.New()
 		if test.afi == packet.IPv6AFI {
-			fsmA.ipv6Unicast = newFSMAddressFamily(packet.IPv6AFI, packet.UnicastSAFI, &familyParameters{
+			fsmA.ipv6Unicast = newFSMAddressFamily(packet.IPv6AFI, packet.UnicastSAFI, &peerAddressFamily{
 				rib:          rib,
 				importFilter: filter.NewAcceptAllFilter(),
 				exportFilter: filter.NewAcceptAllFilter(),
 			}, fsmA)
 			fsmA.ipv6Unicast.multiProtocol = true
-			fsmA.ipv6Unicast.addPathRX = test.addPath
+			fsmA.ipv6Unicast.addPathTX = test.addPath
 		} else {
-			fsmA.ipv4Unicast = newFSMAddressFamily(packet.IPv4AFI, packet.UnicastSAFI, &familyParameters{
+			fsmA.ipv4Unicast = newFSMAddressFamily(packet.IPv4AFI, packet.UnicastSAFI, &peerAddressFamily{
 				rib:          rib,
 				importFilter: filter.NewAcceptAllFilter(),
 				exportFilter: filter.NewAcceptAllFilter(),
 			}, fsmA)
-			fsmA.ipv4Unicast.addPathRX = test.addPath
+			fsmA.ipv4Unicast.addPathTX = test.addPath
 		}
 
 		fsmA.holdTimer = time.NewTimer(time.Second * 90)
diff --git a/routingtable/adjRIBOut/adj_rib_out.go b/routingtable/adjRIBOut/adj_rib_out.go
index 50c717d04512c084eac04bfd953d6e9b9341c98f..a93a5cfe44ab570ce41873b7b6ad416dbd9fb8c3 100644
--- a/routingtable/adjRIBOut/adj_rib_out.go
+++ b/routingtable/adjRIBOut/adj_rib_out.go
@@ -17,20 +17,20 @@ type AdjRIBOut struct {
 	routingtable.ClientManager
 	rt            *routingtable.RoutingTable
 	neighbor      *routingtable.Neighbor
-	addPathRX     bool
+	addPathTX     bool
 	pathIDManager *pathIDManager
 	exportFilter  *filter.Filter
 	mu            sync.RWMutex
 }
 
 // New creates a new Adjacency RIB Out with BGP add path
-func New(neighbor *routingtable.Neighbor, exportFilter *filter.Filter, addPathRX bool) *AdjRIBOut {
+func New(neighbor *routingtable.Neighbor, exportFilter *filter.Filter, addPathTX bool) *AdjRIBOut {
 	a := &AdjRIBOut{
 		rt:            routingtable.NewRoutingTable(),
 		neighbor:      neighbor,
 		pathIDManager: newPathIDManager(),
 		exportFilter:  exportFilter,
-		addPathRX:     addPathRX,
+		addPathTX:     addPathTX,
 	}
 	a.ClientManager = routingtable.NewClientManager(a)
 	return a
@@ -49,7 +49,7 @@ func (a *AdjRIBOut) RouteCount() int64 {
 // AddPath adds path p to prefix `pfx`
 func (a *AdjRIBOut) AddPath(pfx bnet.Prefix, p *route.Path) error {
 	if !routingtable.ShouldPropagateUpdate(pfx, p, a.neighbor) {
-		if a.addPathRX {
+		if a.addPathTX {
 			a.removePathsForPrefix(pfx)
 		}
 		return nil
@@ -96,7 +96,7 @@ func (a *AdjRIBOut) AddPath(pfx bnet.Prefix, p *route.Path) error {
 	a.mu.Lock()
 	defer a.mu.Unlock()
 
-	if a.addPathRX {
+	if a.addPathTX {
 		pathID, err := a.pathIDManager.addPath(p)
 		if err != nil {
 			return fmt.Errorf("Unable to get path ID: %v", err)
@@ -141,7 +141,7 @@ func (a *AdjRIBOut) RemovePath(pfx bnet.Prefix, p *route.Path) bool {
 	a.rt.RemovePath(pfx, p)
 
 	// If the neighbar has AddPath capabilities, try to find the PathID
-	if a.addPathRX {
+	if a.addPathTX {
 		pathID, err := a.pathIDManager.releasePath(p)
 		if err != nil {
 			log.Warningf("Unable to release path for prefix %s: %v", pfx.String(), err)