Skip to content

Commit

Permalink
Merge "DM: Fix for configuring ebgp AS attribute, irb GW address"
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Jul 17, 2015
2 parents e98354b + 197c307 commit 02715ef
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 13 deletions.
8 changes: 5 additions & 3 deletions src/config/device-manager/device_manager/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,14 +175,14 @@ def push_config(self):
self.config_manager.reset_bgp_config()
bgp_router = BgpRouterDM.get(self.bgp_router)
if bgp_router:
for peer_uuid, params in bgp_router.bgp_routers.items():
for peer_uuid, attr in bgp_router.bgp_routers.items():
peer = BgpRouterDM.get(peer_uuid)
if peer is None:
continue
external = (bgp_router.params['autonomous_system'] !=
peer.params['autonomous_system'])
self.config_manager.add_bgp_peer(peer.params['address'],
params, external)
peer.params, attr, external)
self.config_manager.set_bgp_config(bgp_router.params)
self.config_manager.set_global_routing_options(bgp_router.params)
bgp_router_ips = bgp_router.get_all_bgp_router_ips()
Expand Down Expand Up @@ -626,7 +626,9 @@ def update(self, obj=None):
self.prefixes.add('%s/%d' % (subnet['subnet']['ip_prefix'],
subnet['subnet']['ip_prefix_len'])
)
self.gateways.add(subnet['default_gateway'])
self.gateways.add('%s/%d' % (subnet['default_gateway'],
subnet['subnet']['ip_prefix_len'])
)
# end update

def get_vrf_name(self, vrf_type):
Expand Down
25 changes: 15 additions & 10 deletions src/config/device-manager/device_manager/physical_router_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ def add_routing_instance(self, ri_name, import_targets, export_targets,
inet = etree.SubElement(family, "inet")
for gateway in gateways:
addr = etree.SubElement(inet, "address")
etree.SubElement(addr, "name").text = gateway + "/24"
etree.SubElement(addr, "name").text = gateway

lo_intf = etree.SubElement(interfaces_config, "interface")
etree.SubElement(lo_intf, "name").text = "lo0"
Expand Down Expand Up @@ -541,11 +541,14 @@ def delete_bgp_config(self):
self.bgp_config_sent = False
# end delete_config

def add_bgp_peer(self, router, params, external):
def add_bgp_peer(self, router, params, attr, external):
peer_data = {}
peer_data['params'] = params
peer_data['attr'] = attr
if external:
self.external_peers[router] = params
self.external_peers[router] = peer_data
else:
self.bgp_peers[router] = params
self.bgp_peers[router] = peer_data
self.send_bgp_config()
# end add_peer

Expand All @@ -560,19 +563,21 @@ def delete_bgp_peer(self, router):
# end delete_bgp_peer

def _get_neighbor_config_xml(self, bgp_config, peers):
for peer, params in peers.items():
for peer, peer_data in peers.items():
params = peer_data.get('params', {})
attr = peer_data.get('attr', {})
nbr = etree.SubElement(bgp_config, "neighbor")
etree.SubElement(nbr, "name").text = peer
bgp_sessions = params.get('session')
bgp_sessions = attr.get('session')
if bgp_sessions:
# for now assume only one session
session_attrs = bgp_sessions[0].get('attributes', [])
for attr in session_attrs:
for session_attr in session_attrs:
# For not, only consider the attribute if bgp-router is
# not specified
if attr.get('bgp_router') is None:
self._add_family_etree(nbr, attr)
self.add_bgp_auth_config(nbr, attr)
if session_attr.get('bgp_router') is None:
self._add_family_etree(nbr, session_attr)
self.add_bgp_auth_config(nbr, session_attr)
break
if params.get('autonomous_system') is not None:
etree.SubElement(nbr, "peer-as").text = str(params.get('autonomous_system'))
Expand Down

0 comments on commit 02715ef

Please sign in to comment.