Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix initialization of configured families for bgp neighbor
The code used to rely on bgp open messages exchanged with the remote router to handle the negotiation. This does not work as desired in the case where there are multiple representations for a bgp-router. In the scenario described in the bug, there was a bgp-router object of type control-node in cluster A (in which it actually exists) and another bgp-router object of type external-control-node in cluster B (in order to represent the same control-node in cluster B). The problem happened because the bgp-routers were configured with different adddress families for a legitimate reason. Another bgp-router in cluster B was configured to peer with the external-control-node, but the actual bgp negotiation obviously happens with the control-node in cluster A (and a different set of address families). Fix by skipping address families that are not configured on the remote bgp-router when populating the address family list for a neighbor. Change-Id: I6d130cc59673dcdc42013678b4f93f6f6dfafad2 Closes-Bug: 1664343
- Loading branch information
Nischal Sheth
committed
Feb 21, 2017
1 parent
360fe24
commit 456f800
Showing
4 changed files
with
126 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<config> | ||
<routing-instance name='default-domain:default-project:ip-fabric:__default__'> | ||
<bgp-router name='local'> | ||
<address>127.0.0.1</address> | ||
<autonomous-system>1</autonomous-system> | ||
<address-families> | ||
<family>route-target</family> | ||
<family>inet-vpn</family> | ||
<family>e-vpn</family> | ||
</address-families> | ||
</bgp-router> | ||
<bgp-router name='remote1'> | ||
<address>10.1.1.1</address> | ||
<autonomous-system>101</autonomous-system> | ||
<address-families> | ||
<family>route-target</family> | ||
<family>e-vpn</family> | ||
</address-families> | ||
</bgp-router> | ||
</routing-instance> | ||
</config> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<config> | ||
<routing-instance name='default-domain:default-project:ip-fabric:__default__'> | ||
<bgp-router name='local'> | ||
<address>127.0.0.1</address> | ||
<autonomous-system>1</autonomous-system> | ||
</bgp-router> | ||
<bgp-router name='remote1'> | ||
<address>10.1.1.1</address> | ||
<autonomous-system>101</autonomous-system> | ||
<address-families> | ||
<family>inet-vpn</family> | ||
</address-families> | ||
</bgp-router> | ||
</routing-instance> | ||
</config> |