Skip to content

Commit

Permalink
fix topos
Browse files Browse the repository at this point in the history
  • Loading branch information
Maxmawt committed Aug 26, 2019
1 parent f9a87fc commit a4cb534
Show file tree
Hide file tree
Showing 17 changed files with 484 additions and 381 deletions.
4 changes: 2 additions & 2 deletions simple_topo.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ def build(self, *args, **kwargs):
as1r6 = self.addRouter('as1r6')
as1r6.addDaemon(BGP)
as4r1 = self.addRouter('as4r1')
as4r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as4r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))
as4r2 = self.addRouter('as4r2')
as4r2.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as4r2.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))

# Add Links
self.addLink(as1r1, as1r6)
Expand Down
23 changes: 6 additions & 17 deletions simple_topo_2rr.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from ipmininet.iptopo import IPTopo
from ipmininet.router.config import RouterConfig, BGP, ebgp_session, bgp_peering
import ipmininet.router.config.bgp as _bgp
from ipmininet.router.config import RouterConfig, BGP, ebgp_session, bgp_peering, set_rr


class SimpleBGPTopo2RR(IPTopo):
Expand Down Expand Up @@ -36,9 +35,9 @@ def build(self, *args, **kwargs):
as1r6 = self.addRouter('as1r6')
as1r6.addDaemon(BGP)
as4r1 = self.addRouter('as4r1')
as4r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as4r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))
as4r2 = self.addRouter('as4r2')
as4r2.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as4r2.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))

# Add Links
self.addLink(as1r1, as1r6)
Expand All @@ -50,23 +49,13 @@ def build(self, *args, **kwargs):
self.addLink(as1r5, as1r6)
self.addLink(as4r1, as1r6)
self.addLink(as4r2, as1r5)
_bgp.set_rr(self, as1r3, peers=[as1r1, as1r2, as1r4, as1r5, as1r6])
_bgp.set_rr(self, as1r5, peers=[as1r1, as1r2, as1r4, as1r3, as1r6])
set_rr(self, as1r3, peers=[as1r1, as1r2, as1r4, as1r5, as1r6])
set_rr(self, as1r5, peers=[as1r1, as1r2, as1r4, as1r3, as1r6])

# Add full mesh
self.addAS(4, (as4r1, as4r2))
self.addAS(1, (as1r1, as1r2, as1r3, as1r4, as1r5, as1r6))
bgp_peering(self, as1r3, as1r1)
bgp_peering(self, as1r3, as1r2)
bgp_peering(self, as1r3, as1r4)
bgp_peering(self, as1r3, as1r5)
bgp_peering(self, as1r3, as1r6)
bgp_peering(self, as1r5, as1r1)
bgp_peering(self, as1r5, as1r2)
bgp_peering(self, as1r5, as1r3)
bgp_peering(self, as1r5, as1r4)
bgp_peering(self, as1r5, as1r6)


# Add eBGP session
ebgp_session(self, as1r6, as4r1)
ebgp_session(self, as1r5, as4r2)
Expand Down
2 changes: 1 addition & 1 deletion simple_topo_as.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def build(self, *args, **kwargs):
as3r1 = self.addRouter('as3r1')
as3r1.addDaemon(BGP)
as2r1 = self.addRouter('as2r1')
as2r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as2r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))

# Add Links
self.addLink(as1r1, as1r6)
Expand Down
60 changes: 45 additions & 15 deletions simple_topo_local_pref.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from ipmininet.iptopo import IPTopo
from ipmininet.router.config import RouterConfig, BGP, ebgp_session
import ipmininet.router.config.bgp as _bgp
from ipmininet.router.config import RouterConfig, BGP, ebgp_session, set_local_pref, new_access_list



class SimpleBGPTopoLocalPref(IPTopo):
Expand Down Expand Up @@ -36,22 +36,52 @@ def build(self, *args, **kwargs):
as1r6 = self.addRouter('as1r6')
as1r6.addDaemon(BGP)
as4r1 = self.addRouter('as4r1')
as4r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as4r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))
as4r2 = self.addRouter('as4r2')
as4r2.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as4r2.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))
as4h1 = self.addHost("as4h1")
as1h1 = self.addHost("as1h1")
as1h2 = self.addHost("as1h2")
as1h3 = self.addHost("as1h3")
as1h4 = self.addHost("as1h4")
as1h5 = self.addHost("as1h5")
as1h6 = self.addHost("as1h6")

# Add Links
self.addLink(as1r1, as1r6)
self.addLink(as1r1, as1r3)
self.addLink(as1r3, as1r2)
self.addLink(as1r3, as1r6)
self.addLink(as1r2, as1r4)
self.addLink(as1r4, as1r5)
self.addLink(as1r5, as1r6)
self.addLink(as4r1, as1r6)
_bgp.set_local_pref(self, as1r6, as4r1, 99)
self.addLink(as4r2, as1r5)
_bgp.set_local_pref(self, as1r5, as4r2, 50)
self.addLink(as1r1, as1r6, params1={"ip": ("fd00:1:1::1/48",)},
params2={"ip": ("fd00:1:1::2/48",)})
self.addLink(as1r1, as1r3, params1={"ip": ("fd00:1:2::1/48",)},
params2={"ip": ("fd00:1:2::2/48",)})
self.addLink(as1r3, as1r2, params1={"ip": ("fd00:3:1::1/48",)},
params2={"ip": ("fd00:3:1::2/48",)})
self.addLink(as1r3, as1r6, params1={"ip": ("fd00:3:2::1/48",)},
params2={"ip": ("fd00:3:2::2/48",)})
self.addLink(as1r2, as1r4, params1={"ip": ("fd00:4:1::1/48",)},
params2={"ip": ("fd00:4:1::2/48",)})
self.addLink(as1r4, as1r5, params1={"ip": ("fd00:4:2::1/48",)},
params2={"ip": ("fd00:4:2::2/48",)})
self.addLink(as1r5, as1r6, params1={"ip": ("fd00:5:1::1/48",)},
params2={"ip": ("fd00:5:1::2/48",)})
self.addLink(as4r1, as1r6; params1={"ip": ("fd00:6:1::1/48",)},
params2={"ip": ("fd00:6:1::2/48",)})
self.addLink(as4r2, as1r5, params1={"ip": ("fd00:5:2::1/48",)},
params2={"ip": ("fd00:5:2::2/48",)})
self.addLink(as4r1, as4h1, params1={"ip": ("dead:beef::1/32",)},
params2={"ip": ("dead:beef::2/32",)})
self.addLink(as4r2, as4h1, params1={"ip": ("dead:beef::2/32",)},
params2={"ip": ("dead:beef::1/32",)})
self.addLink(as1r1, as1h1)
self.addLink(as1r2, as1h2)
self.addLink(as1r3, as1h3)
self.addLink(as1r4, as1h4)
self.addLink(as1r5, as1h5)
self.addLink(as1r6, as1h6)


new_access_list(self, (as1r6, as1r5, as2r1, as2r2), 'all', ('any',))
set_local_pref(self, as1r6, as4r1, 99, filter_type='access-list', filter_names=('all',))
set_local_pref(self, as1r5, as4r2, 50, filter_type='access-list', filter_names=('all',))


# Add full mesh
self.addAS(4, (as4r1, as4r2))
Expand Down
58 changes: 43 additions & 15 deletions simple_topo_med.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from ipmininet.iptopo import IPTopo
from ipmininet.router.config import RouterConfig, BGP, ebgp_session
import ipmininet.router.config.bgp as _bgp
from ipmininet.router.config import RouterConfig, BGP, ebgp_session, set_med, new_access_list



class SimpleBGPTopoMed(IPTopo):
Expand Down Expand Up @@ -36,22 +36,50 @@ def build(self, *args, **kwargs):
as1r6 = self.addRouter('as1r6')
as1r6.addDaemon(BGP)
as4r1 = self.addRouter('as4r1')
as4r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as4r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))
as4r2 = self.addRouter('as4r2')
as4r2.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as4r2.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))
as4h1 = self.addHost("as4h1")
as1h1 = self.addHost("as1h1")
as1h2 = self.addHost("as1h2")
as1h3 = self.addHost("as1h3")
as1h4 = self.addHost("as1h4")
as1h5 = self.addHost("as1h5")
as1h6 = self.addHost("as1h6")

# Add Links
self.addLink(as1r1, as1r6)
self.addLink(as1r1, as1r3)
self.addLink(as1r3, as1r2)
self.addLink(as1r3, as1r6)
self.addLink(as1r2, as1r4)
self.addLink(as1r4, as1r5)
self.addLink(as1r5, as1r6)
self.addLink(as4r1, as1r6)
_bgp.set_med(self, as4r1, as1r6, 99)
self.addLink(as4r2, as1r5)
_bgp.set_med(self, as4r2, as1r5, 50)
self.addLink(as1r1, as1r6, params1={"ip": ("fd00:1:1::1/48",)},
params2={"ip": ("fd00:1:1::2/48",)})
self.addLink(as1r1, as1r3, params1={"ip": ("fd00:1:2::1/48",)},
params2={"ip": ("fd00:1:2::2/48",)})
self.addLink(as1r3, as1r2, params1={"ip": ("fd00:3:1::1/48",)},
params2={"ip": ("fd00:3:1::2/48",)})
self.addLink(as1r3, as1r6, params1={"ip": ("fd00:3:2::1/48",)},
params2={"ip": ("fd00:3:2::2/48",)})
self.addLink(as1r2, as1r4, params1={"ip": ("fd00:4:1::1/48",)},
params2={"ip": ("fd00:4:1::2/48",)})
self.addLink(as1r4, as1r5, params1={"ip": ("fd00:4:2::1/48",)},
params2={"ip": ("fd00:4:2::2/48",)})
self.addLink(as1r5, as1r6, params1={"ip": ("fd00:5:1::1/48",)},
params2={"ip": ("fd00:5:1::2/48",)})
self.addLink(as4r1, as1r6; params1={"ip": ("fd00:6:1::1/48",)},
params2={"ip": ("fd00:6:1::2/48",)})
self.addLink(as4r2, as1r5, params1={"ip": ("fd00:5:2::1/48",)},
params2={"ip": ("fd00:5:2::2/48",)})
self.addLink(as4r1, as4h1, params1={"ip": ("dead:beef::1/32",)},
params2={"ip": ("dead:beef::2/32",)})
self.addLink(as4r2, as4h1, params1={"ip": ("dead:beef::2/32",)},
params2={"ip": ("dead:beef::1/32",)})
self.addLink(as1r1, as1h1)
self.addLink(as1r2, as1h2)
self.addLink(as1r3, as1h3)
self.addLink(as1r4, as1h4)
self.addLink(as1r5, as1h5)
self.addLink(as1r6, as1h6)

new_access_list(self, (as1r6, as1r5, as2r1, as2r2), 'all', ('any',))
set_med(self, as4r1, as1r6, 99, filter_type='access-list', filter_names=('all',))
set_med(self, as4r2, as1r5, 50, filter_type='access-list', filter_names=('all',))

# Add full mesh
self.addAS(4, (as4r1, as4r2))
Expand Down
11 changes: 2 additions & 9 deletions simple_topo_rr.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from ipmininet.iptopo import IPTopo
from ipmininet.router.config import RouterConfig, BGP, ebgp_session, bgp_peering
import ipmininet.router.config.bgp as _bgp
from ipmininet.router.config import RouterConfig, BGP, ebgp_session, bgp_peering, set_rr


class SimpleBGPTopoRR(IPTopo):
Expand Down Expand Up @@ -50,17 +49,11 @@ def build(self, *args, **kwargs):
self.addLink(as1r5, as1r6)
self.addLink(as4r1, as1r6)
self.addLink(as4r2, as1r5)
_bgp.set_rr(self, as1r3, peers=[as1r1, as1r2, as1r4, as1r5, as1r6])
set_rr(self, as1r3, peers=[as1r1, as1r2, as1r4, as1r5, as1r6])

# Add full mesh
self.addAS(4, (as4r1, as4r2))
self.addAS(1, (as1r1, as1r2, as1r3, as1r4, as1r5, as1r6))
bgp_peering(self, as1r3, as1r1)
bgp_peering(self, as1r3, as1r2)
bgp_peering(self, as1r3, as1r4)
bgp_peering(self, as1r3, as1r5)
bgp_peering(self, as1r3, as1r6)


# Add eBGP session
ebgp_session(self, as1r6, as4r1)
Expand Down
81 changes: 52 additions & 29 deletions topo_2rr_1.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from ipmininet.iptopo import IPTopo
from ipmininet.router.config import RouterConfig, BGP, ebgp_session, bgp_peering
from ipmininet.router.config import RouterConfig, BGP, ebgp_session, bgp_peering, set_rr
import ipmininet.router.config.bgp as _bgp


Expand Down Expand Up @@ -44,43 +44,66 @@ def build(self, *args, **kwargs):
as3r1 = self.addRouter('as3r1')
as3r1.addDaemon(BGP)
as2r1 = self.addRouter('as2r1')
as2r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/48',)),))
as2r1.addDaemon(BGP, address_families=(_bgp.AF_INET6(networks=('dead:beef::/32',)),))
as2h1 = self.addHost("as2h1")
as1h1 = self.addHost("as1h1")
as1h2 = self.addHost("as1h2")
as1h3 = self.addHost("as1h3")
as1h4 = self.addHost("as1h4")
as1h5 = self.addHost("as1h5")
as1h6 = self.addHost("as1h6")

# Add Links
self.addLink(as1r1, as1r6)
self.addLink(as1r1, as1r3)
self.addLink(as1r3, as1r2)
self.addLink(as1r3, as1r6)
self.addLink(as1r2, as1r4)
self.addLink(as1r4, as1r5)
self.addLink(as1r5, as1r6)
self.addLink(as4r1, as1r5)
self.addLink(as4r2, as1r4)
self.addLink(as3r1, as1r1)
self.addLink(as5r1, as1r6)
self.addLink(as3r1, as5r1)
self.addLink(as5r1, as2r1)
self.addLink(as2r1, as4r1)
self.addLink(as4r1, as4r2)
_bgp.set_rr(self, as1r3, peers=[as1r1, as1r2, as1r4, as1r5, as1r6])
_bgp.set_rr(self, as1r5, peers=[as1r1, as1r2, as1r4, as1r3, as1r6])
self.addLink(as1r1, as1r6, params1={"ip": ("fd00:1:1::1/48",)},
params2={"ip": ("fd00:1:1::2/48",)})
self.addLink(as1r1, as1r3, params1={"ip": ("fd00:1:2::1/48",)},
params2={"ip": ("fd00:1:2::2/48",)})
self.addLink(as1r3, as1r2, params1={"ip": ("fd00:1:4::1/48",)},
params2={"ip": ("fd00:1:4::2/48",)})
self.addLink(as1r3, as1r6, params1={"ip": ("fd00:1:3::1/48",)},
params2={"ip": ("fd00:1:3::2/48",)})
self.addLink(as1r2, as1r4, params1={"ip": ("fd00:1:5::1/48",)},
params2={"ip": ("fd00:1:5::2/48",)})
self.addLink(as1r4, as1r5, params1={"ip": ("fd00:1:6::1/48",)},
params2={"ip": ("fd00:1:6::2/48",)})
self.addLink(as1r5, as1r6, params1={"ip": ("fd00:1:7::1/48",)},
params2={"ip": ("fd00:1:7::2/48",)})
self.addLink(as4r1, as1r5, params1={"ip": ("fd00:4:2::1/48",)},
params2={"ip": ("fd00:4:2::2/48",)})
self.addLink(as4r2, as1r4, params1={"ip": ("fd00:4:1::1/48",)},
params2={"ip": ("fd00:4:1::2/48",)})
self.addLink(as3r1, as1r1, params1={"ip": ("fd00:3:1::1/48",)},
params2={"ip": ("fd00:3:1::2/48",)})
self.addLink(as5r1, as1r6; params1={"ip": ("fd00:5:1::1/48",)},
params2={"ip": ("fd00:5:1::2/48",)})
self.addLink(as3r1, as5r1, params1={"ip": ("fd00:5:2::1/48",)},
params2={"ip": ("fd00:5:2::2/48",)})
self.addLink(as5r1, as2r1, params1={"ip": ("fd00:2:1::1/48",)},
params2={"ip": ("fd00:2:1::2/48",)})
self.addLink(as2r1, as4r1, params1={"ip": ("fd00:2:2::1/48",)},
params2={"ip": ("fd00:2:2::2/48",)})
self.addLink(as4r1, as4r2, params1={"ip": ("fd00:4:3::1/48",)},
params2={"ip": ("fd00:4:3::2/48",)})
self.addLink(as2r1, as2h1, params1={"ip": ("dead:beef::1/32",)},
params2={"ip": ("dead:beef::2/32",)})

self.addLink(as1r1, as1h1)
self.addLink(as1r2, as1h2)
self.addLink(as1r3, as1h3)
self.addLink(as1r4, as1h4)
self.addLink(as1r5, as1h5)
self.addLink(as1r6, as1h6)


set_rr(self, as1r3, peers=[as1r1, as1r2, as1r4, as1r5, as1r6])
set_rr(self, as1r5, peers=[as1r1, as1r2, as1r4, as1r3, as1r6])

# Add full mesh
self.addAS(2, (as2r1,))
self.addAS(3, (as3r1,))
self.addAS(5, (as5r1,))
self.addiBGPFullMesh(4, routers=[as4r1, as4r2])
self.addAS(1, (as1r1, as1r2, as1r3, as1r4, as1r5, as1r6))
bgp_peering(self, as1r3, as1r1)
bgp_peering(self, as1r3, as1r2)
bgp_peering(self, as1r3, as1r4)
bgp_peering(self, as1r3, as1r5)
bgp_peering(self, as1r3, as1r6)
bgp_peering(self, as1r5, as1r1)
bgp_peering(self, as1r5, as1r2)
bgp_peering(self, as1r5, as1r3)
bgp_peering(self, as1r5, as1r4)
bgp_peering(self, as1r5, as1r6)

# Add eBGP session
ebgp_session(self, as1r6, as5r1)
Expand Down
Loading

0 comments on commit a4cb534

Please sign in to comment.