Adds scaled env. for multicast testing.
Env. can support at most 4 aggregation switches (controlled by --a).
Each aggregation device has 48 ports.
netcfg is autogenerated by trellis_mcast_netcfg_gen.py.
Additionally, makes the sleep configurable,
puts in background dhclient, improves .gitignore
and extends dhcp configs.
Change-Id: I03bd0d3e94767b6b8846653989e5f9c452e7dc65
diff --git a/.gitignore b/.gitignore
index c3b91d0..443910e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,8 @@
trellis/.vagrant/
# virtualbox
trellis/*.log
+# patch
+*.txt
trellis/zebradbgp1.conf
trellis/zebradbgp2.conf
diff --git a/trellis/dhcpd.conf b/trellis/dhcpd.conf
index 35cb093..6b80b73 100644
--- a/trellis/dhcpd.conf
+++ b/trellis/dhcpd.conf
@@ -44,6 +44,25 @@
option routers 10.11.2.254;
}
+subnet 10.100.1.0 netmask 255.255.255.0 {
+ range 10.100.1.100 10.100.1.240;
+ option routers 10.100.1.254;
+}
+
+subnet 10.100.2.0 netmask 255.255.255.0 {
+ range 10.100.2.100 10.100.2.240;
+ option routers 10.100.2.254;
+}
+
+subnet 10.100.3.0 netmask 255.255.255.0 {
+ range 10.100.3.100 10.100.3.240;
+ option routers 10.100.3.254;
+}
+
+subnet 10.100.4.0 netmask 255.255.255.0 {
+ range 10.100.4.100 10.100.4.240;
+ option routers 10.100.4.254;
+}
host h1 {
hardware ethernet 00:aa:00:00:00:01;
diff --git a/trellis/dhcpd6.conf b/trellis/dhcpd6.conf
index dccb5ec..6910e4c 100644
--- a/trellis/dhcpd6.conf
+++ b/trellis/dhcpd6.conf
@@ -36,6 +36,25 @@
option dhcp6.next-hop 2000::bff;
}
+subnet6 2002::100/120 {
+ range6 2002::160 2002::1fe;
+ option dhcp6.next-hop 2002::1ff;
+}
+
+subnet6 2002::200/120 {
+ range6 2002::260 2002::2fe;
+ option dhcp6.next-hop 2002::2ff;
+}
+
+subnet6 2002::300/120 {
+ range6 2002::360 2002::3fe;
+ option dhcp6.next-hop 2002::3ff;
+}
+
+subnet6 2002::400/120 {
+ range6 2002::460 2002::4fe;
+ option dhcp6.next-hop 2002::4ff;
+}
host h1v6 {
hardware ethernet 00:bb:00:00:00:01;
diff --git a/trellis/trellis_mcast.json b/trellis/trellis_mcast.json
new file mode 100644
index 0000000..c0dee66
--- /dev/null
+++ b/trellis/trellis_mcast.json
@@ -0,0 +1,3910 @@
+{
+ "hosts":{
+ "00:00:00:00:00:20/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc32",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:65/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc101",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:92/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc146",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:59/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc89",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:af/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc175",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:0d/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc13",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:0e/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc14",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:96/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc150",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:9a/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc154",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:5f/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc95",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:15/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc21",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:be/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc190",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:7a/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc122",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:60/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc96",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:7e/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc126",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:61/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc97",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:98/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc152",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:44/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc68",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:5d/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc93",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:39/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc57",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:38/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc56",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:52/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc82",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:5e/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc94",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:4f/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc79",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:36/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc54",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:54/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc84",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:ab/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc171",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:97/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc151",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:b7/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc183",
+ "longitude":-116.0
+ }
+ },
+ "00:99:00:00:00:01/-1":{
+ "basic":{
+ "latitude":30.766,
+ "name":"dhcp",
+ "longitude":-85.359
+ }
+ },
+ "00:00:00:00:00:48/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc72",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:9d/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc157",
+ "longitude":-118.0
+ }
+ },
+ "00:88:00:00:00:04/160":{
+ "basic":{
+ "latitude":36.766,
+ "name":"quagga2",
+ "longitude":-77.359
+ }
+ },
+ "00:00:00:00:00:9e/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc158",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:9c/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc156",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:ae/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc174",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:6d/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc109",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:58/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc88",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:79/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc121",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:3d/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc61",
+ "longitude":-110.0
+ }
+ },
+ "00:BB:00:00:00:02/-1":{
+ "basic":{
+ "latitude":34.7,
+ "name":"h2v6",
+ "longitude":-92.359
+ }
+ },
+ "00:CC:00:00:00:02/-1":{
+ "basic":{
+ "latitude":30.766,
+ "name":"dh2",
+ "longitude":-81.359
+ }
+ },
+ "00:00:00:00:00:23/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc35",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:0b/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc11",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:6c/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc108",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:66/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc102",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:67/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc103",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:5a/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc90",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:4c/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc76",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:b3/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc179",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:a4/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc164",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:69/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc105",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:45/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc69",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:b8/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc184",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:04/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc4",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:9f/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc159",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:31/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc49",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:73/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc115",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:a1/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc161",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:b9/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc185",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:94/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc148",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:0a/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc10",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:90/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc144",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:4a/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc74",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:82/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc130",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:26/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc38",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:a9/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc169",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:62/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc98",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:6e/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc110",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:14/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc20",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:78/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc120",
+ "longitude":-112.0
+ }
+ },
+ "00:AA:00:00:00:04/-1":{
+ "basic":{
+ "latitude":34.766,
+ "name":"h4",
+ "longitude":-87.359
+ }
+ },
+ "00:00:00:00:00:50/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc80",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:24/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc36",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:0c/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc12",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:09/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc9",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:33/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc51",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:76/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc118",
+ "longitude":-114.0
+ }
+ },
+ "00:BB:00:00:00:01/-1":{
+ "basic":{
+ "latitude":36.766,
+ "name":"h1v6",
+ "longitude":-92.359
+ }
+ },
+ "00:00:00:00:00:1a/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc26",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:18/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc24",
+ "longitude":-104.0
+ }
+ },
+ "00:AA:00:00:00:05/-1":{
+ "basic":{
+ "latitude":33,
+ "name":"h5",
+ "longitude":-99.359
+ }
+ },
+ "00:00:00:00:00:2f/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc47",
+ "longitude":-105.0
+ }
+ },
+ "00:BB:00:00:00:05/-1":{
+ "basic":{
+ "latitude":33,
+ "name":"h5v6",
+ "longitude":-101.359
+ }
+ },
+ "00:00:00:00:00:19/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc25",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:84/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc132",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:6a/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc106",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:bd/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc189",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:72/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc114",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:5b/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc91",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:86/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc134",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:49/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc73",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:8f/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc143",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:28/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc40",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:ad/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc173",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:27/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc39",
+ "longitude":-104.0
+ }
+ },
+ "00:AA:00:00:00:01/-1":{
+ "basic":{
+ "latitude":33,
+ "name":"h1",
+ "longitude":-94.359
+ }
+ },
+ "00:00:00:00:00:9b/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc155",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:7c/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc124",
+ "longitude":-114.0
+ }
+ },
+ "00:88:00:00:00:01/-1":{
+ "basic":{
+ "latitude":30.766,
+ "name":"upstream1",
+ "longitude":-77.359
+ }
+ },
+ "00:00:00:00:00:06/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc6",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:21/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc33",
+ "longitude":-104.0
+ }
+ },
+ "00:BB:00:00:00:04/-1":{
+ "basic":{
+ "latitude":30.766,
+ "name":"h4v6",
+ "longitude":-87.359
+ }
+ },
+ "00:00:00:00:00:29/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc41",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:57/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc87",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:8c/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc140",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:01/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc1",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:a3/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc163",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:a2/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc162",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:8b/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc139",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:7b/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc123",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:3e/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc62",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:89/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc137",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:07/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc7",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:8d/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc141",
+ "longitude":-112.0
+ }
+ },
+ "00:CC:00:00:00:01/-1":{
+ "basic":{
+ "latitude":33,
+ "name":"dh1",
+ "longitude":-96.959
+ }
+ },
+ "00:AA:00:00:00:03/-1":{
+ "basic":{
+ "latitude":36.766,
+ "name":"h3",
+ "longitude":-87.359
+ }
+ },
+ "00:00:00:00:00:a0/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc160",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:6f/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc111",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:30/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc48",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:75/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc117",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:74/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc116",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:7f/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc127",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:2b/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc43",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:c0/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc192",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:99/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc153",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:13/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc19",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:05/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc5",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:55/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc85",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:85/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc133",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:46/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc70",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:a7/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc167",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:1c/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc28",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:1b/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc27",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:81/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc129",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:2c/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc44",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:02/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc2",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:4d/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc77",
+ "longitude":-109.0
+ }
+ },
+ "00:BB:00:00:00:03/-1":{
+ "basic":{
+ "latitude":32.766,
+ "name":"h3v6",
+ "longitude":-87.359
+ }
+ },
+ "00:00:00:00:00:7d/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc125",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:95/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc149",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:35/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc53",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:bb/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc187",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:a5/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc165",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:71/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc113",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:42/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc66",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:2a/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc42",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:b6/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc182",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:3a/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc58",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:25/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc37",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:ac/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc172",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:37/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc55",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:80/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc128",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:8a/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc138",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:43/-1":{
+ "basic":{
+ "latitude":29.0,
+ "name":"acc67",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:bc/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc188",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:88/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc136",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:0f/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc15",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:b1/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc177",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:5c/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc92",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:b0/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc176",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:a6/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc166",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:a8/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc168",
+ "longitude":-116.0
+ }
+ },
+ "00:88:00:00:00:03/110":{
+ "basic":{
+ "latitude":32.766,
+ "name":"quagga1",
+ "longitude":-77.359
+ }
+ },
+ "00:00:00:00:00:47/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc71",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:91/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc145",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:56/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc86",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:1e/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc30",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:2e/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc46",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:3b/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc59",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:2d/-1":{
+ "basic":{
+ "latitude":21.0,
+ "name":"acc45",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:34/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc52",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:3c/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc60",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:ba/-1":{
+ "basic":{
+ "latitude":22.0,
+ "name":"acc186",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:8e/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc142",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:17/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc23",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:70/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc112",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:11/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc17",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:32/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc50",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:68/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc104",
+ "longitude":-113.0
+ }
+ },
+ "00:99:66:00:00:01/-1":{
+ "basic":{
+ "latitude":30.766,
+ "name":"dhcpv6",
+ "longitude":-83.359
+ }
+ },
+ "00:00:00:00:00:bf/-1":{
+ "basic":{
+ "latitude":20.0,
+ "name":"acc191",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:22/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc34",
+ "longitude":-106.0
+ }
+ },
+ "00:88:00:00:00:02/-1":{
+ "basic":{
+ "latitude":34.766,
+ "name":"upstream2",
+ "longitude":-77.359
+ }
+ },
+ "00:00:00:00:00:b5/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc181",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:16/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc22",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:b4/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc180",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:63/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc99",
+ "longitude":-112.0
+ }
+ },
+ "00:00:00:00:00:10/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc16",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:b2/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc178",
+ "longitude":-118.0
+ }
+ },
+ "00:00:00:00:00:83/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc131",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:6b/-1":{
+ "basic":{
+ "latitude":32.0,
+ "name":"acc107",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:1f/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc31",
+ "longitude":-106.0
+ }
+ },
+ "00:00:00:00:00:4b/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc75",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:87/-1":{
+ "basic":{
+ "latitude":23.0,
+ "name":"acc135",
+ "longitude":-112.0
+ }
+ },
+ "00:AA:00:00:00:02/-1":{
+ "basic":{
+ "latitude":33,
+ "name":"h2",
+ "longitude":-92.359
+ }
+ },
+ "00:00:00:00:00:53/-1":{
+ "basic":{
+ "latitude":24.0,
+ "name":"acc83",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:93/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc147",
+ "longitude":-116.0
+ }
+ },
+ "00:00:00:00:00:3f/-1":{
+ "basic":{
+ "latitude":31.0,
+ "name":"acc63",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:4e/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc78",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:64/-1":{
+ "basic":{
+ "latitude":34.0,
+ "name":"acc100",
+ "longitude":-114.0
+ }
+ },
+ "00:00:00:00:00:40/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc64",
+ "longitude":-110.0
+ }
+ },
+ "00:00:00:00:00:41/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc65",
+ "longitude":-109.0
+ }
+ },
+ "00:00:00:00:00:03/-1":{
+ "basic":{
+ "latitude":35.0,
+ "name":"acc3",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:08/-1":{
+ "basic":{
+ "latitude":33.0,
+ "name":"acc8",
+ "longitude":-105.0
+ }
+ },
+ "00:00:00:00:00:77/-1":{
+ "basic":{
+ "latitude":28.0,
+ "name":"acc119",
+ "longitude":-113.0
+ }
+ },
+ "00:00:00:00:00:aa/-1":{
+ "basic":{
+ "latitude":27.0,
+ "name":"acc170",
+ "longitude":-117.0
+ }
+ },
+ "00:00:00:00:00:12/-1":{
+ "basic":{
+ "latitude":30.0,
+ "name":"acc18",
+ "longitude":-104.0
+ }
+ },
+ "00:00:00:00:00:51/-1":{
+ "basic":{
+ "latitude":25.0,
+ "name":"acc81",
+ "longitude":-108.0
+ }
+ },
+ "00:00:00:00:00:1d/-1":{
+ "basic":{
+ "latitude":26.0,
+ "name":"acc29",
+ "longitude":-105.0
+ }
+ }
+ },
+ "apps":{
+ "org.onosproject.dhcprelay":{
+ "default":[
+ {
+ "serverIps":[
+ "10.0.3.253",
+ "2000::3fd"
+ ],
+ "dhcpServerConnectPoint":"of:0000000000000205/10"
+ }
+ ]
+ }
+ },
+ "ports":{
+ "of:0000000000000003/45":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/44":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/47":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/46":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/41":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000002/17":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/48":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000003/42":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000002/46":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/47":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/44":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/16":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/42":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/43":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/40":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/41":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000001/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/9":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000003/40":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000004/40":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/41":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/42":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/43":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000003/32":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/43":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000004/46":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000003/1":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000004/48":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000003/2":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/29":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000001/36":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/37":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/34":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/35":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/32":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/33":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/30":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/31":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000003/4":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000001/38":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/39":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000004/29":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000003/33":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000002/45":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000003/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000203/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::4ff/120"
+ ],
+ "vlan-untagged":23
+ }
+ ]
+ },
+ "of:0000000000000003/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/48":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/9":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000203/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.4.254/24"
+ ],
+ "vlan-untagged":22
+ }
+ ]
+ },
+ "of:0000000000000001/24":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/27":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/26":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/21":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/20":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/23":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/22":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/29":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/28":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000203/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.1.2.254/24",
+ "2001::2ff/120"
+ ],
+ "vlan-untagged":21
+ }
+ ]
+ },
+ "of:0000000000000203/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.1.2.254/24",
+ "2001::2ff/120"
+ ],
+ "vlan-tagged":[
+ 21
+ ]
+ }
+ ]
+ },
+ "of:0000000000000205/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.5.6.254/24"
+ ],
+ "vlan-tagged":[
+ 56
+ ]
+ }
+ ]
+ },
+ "of:0000000000000205/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.3.254/24"
+ ],
+ "vlan-untagged":30
+ }
+ ]
+ },
+ "of:0000000000000004/3":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/2":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/1":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000205/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.3.254/24"
+ ],
+ "vlan-untagged":30
+ }
+ ]
+ },
+ "of:0000000000000004/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/4":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/9":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000001/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/4":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/2":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/3":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/1":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000002/1":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000004/23":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000002/3":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/2":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/4":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000001/10":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/11":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/12":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/13":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/14":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/15":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/16":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/17":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/18":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/19":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000002/9":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000003/18":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/19":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/12":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/13":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/10":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/11":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/16":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/17":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/14":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/15":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000002/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000004/45":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/39":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/38":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/31":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/30":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/33":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/32":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/35":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/34":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/37":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/36":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000003/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/3":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000001/25":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000004/44":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/26":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000002/36":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000004/27":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/47":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/24":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000002/11":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/10":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/13":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/12":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/15":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000205/13":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.5.6.254/24"
+ ],
+ "vlan-untagged":56
+ }
+ ]
+ },
+ "of:0000000000000205/10":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.3.254/24",
+ "2000::3ff/120"
+ ],
+ "vlan-untagged":30
+ }
+ ]
+ },
+ "of:0000000000000205/11":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.1.254/24",
+ "2000::1ff/120"
+ ],
+ "vlan-tagged":[
+ 110
+ ]
+ }
+ ]
+ },
+ "of:0000000000000002/19":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/18":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000003/38":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/39":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000004/25":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/13":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/12":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/11":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/10":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/17":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/16":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000004/15":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/14":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000003/27":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000004/19":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000004/18":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000003/26":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/23":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/22":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000003/21":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/20":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000002/28":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/29":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000003/25":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/24":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000002/24":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/25":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/26":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/27":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/20":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/21":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/22":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/23":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000003/28":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000004/28":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000003/31":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000004/21":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.4.254/24"
+ ],
+ "vlan-untagged":103
+ }
+ ]
+ },
+ "of:0000000000000001/43":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/42":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/41":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/40":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/47":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/46":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/45":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.1.254/24"
+ ],
+ "vlan-untagged":100
+ }
+ ]
+ },
+ "of:0000000000000001/44":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000001/48":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::1ff/120"
+ ],
+ "vlan-untagged":200
+ }
+ ]
+ },
+ "of:0000000000000205/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::3ff/120"
+ ],
+ "vlan-untagged":50
+ }
+ ]
+ },
+ "of:0000000000000205/9":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::3ff/120"
+ ],
+ "vlan-untagged":50
+ }
+ ]
+ },
+ "of:0000000000000002/39":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/38":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/33":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/32":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/31":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/30":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000002/37":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000204/10":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.1.2.254/24",
+ "2001::2ff/120"
+ ],
+ "vlan-untagged":21
+ }
+ ]
+ },
+ "of:0000000000000002/35":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.2.254/24"
+ ],
+ "vlan-untagged":101
+ }
+ ]
+ },
+ "of:0000000000000002/34":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ },
+ "of:0000000000000003/34":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000206/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.6.254/24",
+ "2000::6ff/120"
+ ],
+ "vlan-untagged":160
+ }
+ ]
+ },
+ "of:0000000000000206/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.6.254/24",
+ "2000::6ff/120"
+ ],
+ "vlan-tagged":[
+ 160
+ ]
+ }
+ ]
+ },
+ "of:0000000000000206/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.5.6.254/24"
+ ],
+ "vlan-tagged":[
+ 56
+ ]
+ }
+ ]
+ },
+ "of:0000000000000003/35":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000003/30":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000206/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.5.6.254/24"
+ ],
+ "vlan-untagged":56
+ }
+ ]
+ },
+ "of:0000000000000003/36":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::3ff/120"
+ ],
+ "vlan-untagged":202
+ }
+ ]
+ },
+ "of:0000000000000004/22":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000003/37":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.100.3.254/24"
+ ],
+ "vlan-untagged":102
+ }
+ ]
+ },
+ "of:0000000000000204/9":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::2ff/120"
+ ],
+ "vlan-untagged":40
+ }
+ ]
+ },
+ "of:0000000000000204/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::2ff/120"
+ ],
+ "vlan-untagged":40
+ }
+ ]
+ },
+ "of:0000000000000204/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.1.2.254/24",
+ "2001::2ff/120"
+ ],
+ "vlan-tagged":[
+ 21
+ ]
+ }
+ ]
+ },
+ "of:0000000000000205/12":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.1.254/24",
+ "2000::1ff/120"
+ ],
+ "vlan-untagged":110
+ }
+ ]
+ },
+ "of:0000000000000204/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.2.254/24"
+ ],
+ "vlan-untagged":20
+ }
+ ]
+ },
+ "of:0000000000000204/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.2.254/24"
+ ],
+ "vlan-untagged":20
+ }
+ ]
+ },
+ "of:0000000000000004/20":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::4ff/120"
+ ],
+ "vlan-untagged":203
+ }
+ ]
+ },
+ "of:0000000000000002/14":{
+ "interfaces":[
+ {
+ "ips":[
+ "2002::2ff/120"
+ ],
+ "vlan-untagged":201
+ }
+ ]
+ }
+ },
+ "devices":{
+ "of:0000000000000246":{
+ "segmentrouting":{
+ "ipv4NodeSid":246,
+ "name":"s246",
+ "ipv4Loopback":"192.168.0.246",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":256,
+ "isEdgeRouter":false,
+ "routerMac":"00:00:00:00:02:46",
+ "ipv6Loopback":"2000::c0a8:0246"
+ },
+ "basic":{
+ "latitude":"40.15",
+ "driver":"ofdpa-ovs",
+ "name":"s246",
+ "longitude":"-113.679"
+ }
+ },
+ "of:0000000000000247":{
+ "segmentrouting":{
+ "ipv4NodeSid":247,
+ "name":"s247",
+ "ipv4Loopback":"192.168.0.247",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":257,
+ "isEdgeRouter":false,
+ "routerMac":"00:00:00:00:02:47",
+ "ipv6Loopback":"2000::c0a8:0247"
+ },
+ "basic":{
+ "latitude":"40.205",
+ "driver":"ofdpa-ovs",
+ "name":"s247",
+ "longitude":"-109.359"
+ }
+ },
+ "of:0000000000000001":{
+ "segmentrouting":{
+ "ipv4NodeSid":101,
+ "name":"s1",
+ "ipv4Loopback":"192.168.0.101",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":111,
+ "isEdgeRouter":true,
+ "routerMac":"00:00:00:00:01:01",
+ "ipv6Loopback":"2000::c0a8:0101"
+ },
+ "basic":{
+ "latitude":"36.766",
+ "driver":"ofdpa-ovs",
+ "name":"s1",
+ "longitude":"-105.359"
+ }
+ },
+ "of:0000000000000002":{
+ "segmentrouting":{
+ "ipv4NodeSid":102,
+ "name":"s2",
+ "ipv4Loopback":"192.168.0.102",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":112,
+ "isEdgeRouter":true,
+ "routerMac":"00:00:00:00:01:02",
+ "ipv6Loopback":"2000::c0a8:0102"
+ },
+ "basic":{
+ "latitude":"36.766",
+ "driver":"ofdpa-ovs",
+ "name":"s2",
+ "longitude":"-109.359"
+ }
+ },
+ "of:0000000000000003":{
+ "segmentrouting":{
+ "ipv4NodeSid":103,
+ "name":"s3",
+ "ipv4Loopback":"192.168.0.103",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":113,
+ "isEdgeRouter":true,
+ "routerMac":"00:00:00:00:01:03",
+ "ipv6Loopback":"2000::c0a8:0103"
+ },
+ "basic":{
+ "latitude":"36.766",
+ "driver":"ofdpa-ovs",
+ "name":"s3",
+ "longitude":"-113.359"
+ }
+ },
+ "of:0000000000000004":{
+ "segmentrouting":{
+ "ipv4NodeSid":104,
+ "name":"s4",
+ "ipv4Loopback":"192.168.0.104",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":114,
+ "isEdgeRouter":true,
+ "routerMac":"00:00:00:00:01:04",
+ "ipv6Loopback":"2000::c0a8:0104"
+ },
+ "basic":{
+ "latitude":"36.766",
+ "driver":"ofdpa-ovs",
+ "name":"s4",
+ "longitude":"-117.359"
+ }
+ },
+ "of:0000000000000226":{
+ "segmentrouting":{
+ "ipv4NodeSid":226,
+ "name":"s226",
+ "ipv4Loopback":"192.168.0.226",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":236,
+ "isEdgeRouter":false,
+ "routerMac":"00:00:00:00:02:26",
+ "ipv6Loopback":"2000::c0a8:0226"
+ },
+ "basic":{
+ "latitude":"44.15",
+ "driver":"ofdpa-ovs",
+ "name":"s226",
+ "longitude":"-95.679"
+ }
+ },
+ "of:0000000000000227":{
+ "segmentrouting":{
+ "ipv4NodeSid":227,
+ "name":"s227",
+ "ipv4Loopback":"192.168.0.227",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":237,
+ "isEdgeRouter":false,
+ "routerMac":"00:00:00:00:02:27",
+ "ipv6Loopback":"2000::c0a8:0227"
+ },
+ "basic":{
+ "latitude":"44.205",
+ "driver":"ofdpa-ovs",
+ "name":"s227",
+ "longitude":"-84.359"
+ }
+ },
+ "of:0000000000000203":{
+ "segmentrouting":{
+ "ipv4NodeSid":203,
+ "name":"s203",
+ "ipv4Loopback":"192.168.0.203",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":213,
+ "pairLocalPort":5,
+ "isEdgeRouter":true,
+ "routerMac":"00:00:00:00:02:03",
+ "ipv6Loopback":"2000::c0a8:0203",
+ "pairDeviceId":"of:0000000000000204"
+ },
+ "basic":{
+ "latitude":"36.766",
+ "driver":"ofdpa-ovs",
+ "name":"s203",
+ "longitude":"-99.359"
+ }
+ },
+ "of:0000000000000206":{
+ "segmentrouting":{
+ "ipv4NodeSid":206,
+ "name":"s206",
+ "ipv4Loopback":"192.168.0.206",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":216,
+ "pairLocalPort":5,
+ "isEdgeRouter":true,
+ "routerMac":"00:00:00:00:02:05",
+ "ipv6Loopback":"2000::c0a8:0206",
+ "pairDeviceId":"of:0000000000000205"
+ },
+ "basic":{
+ "latitude":"36.766",
+ "driver":"ofdpa-ovs",
+ "name":"s206",
+ "longitude":"-80.029"
+ }
+ },
+ "of:0000000000000204":{
+ "segmentrouting":{
+ "ipv4NodeSid":204,
+ "name":"s204",
+ "ipv4Loopback":"192.168.0.204",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":214,
+ "pairLocalPort":5,
+ "isEdgeRouter":true,
+ "routerMac":"00:00:00:00:02:03",
+ "ipv6Loopback":"2000::c0a8:0204",
+ "pairDeviceId":"of:0000000000000203"
+ },
+ "basic":{
+ "latitude":"36.766",
+ "driver":"ofdpa-ovs",
+ "name":"s204",
+ "longitude":"-94.359"
+ }
+ },
+ "of:0000000000000205":{
+ "segmentrouting":{
+ "ipv4NodeSid":205,
+ "name":"s205",
+ "ipv4Loopback":"192.168.0.205",
+ "adjacencySids":[
+
+ ],
+ "ipv6NodeSid":215,
+ "pairLocalPort":5,
+ "isEdgeRouter":true,
+ "routerMac":"00:00:00:00:02:05",
+ "ipv6Loopback":"2000::c0a8:0205",
+ "pairDeviceId":"of:0000000000000206"
+ },
+ "basic":{
+ "latitude":"36.766",
+ "driver":"ofdpa-ovs",
+ "name":"s205",
+ "longitude":"-84.89"
+ }
+ }
+ }
+}
diff --git a/trellis/trellis_mcast.py b/trellis/trellis_mcast.py
new file mode 100755
index 0000000..35b9762
--- /dev/null
+++ b/trellis/trellis_mcast.py
@@ -0,0 +1,237 @@
+#!/usr/bin/python
+
+import sys
+sys.path.append('..')
+from mininet.topo import Topo
+from mininet.cli import CLI
+from mininet.log import setLogLevel
+from mininet.node import RemoteController, OVSBridge, Host, OVSSwitch
+from mininet.link import TCLink
+from mininet.nodelib import NAT
+from ipaddress import ip_network
+from routinglib import BgpRouter
+from routinglib import RoutedHost, RoutedHost6
+from trellislib import DhcpClient, Dhcp6Client, Dhcp4and6Client, DhcpRelay, DhcpServer, Dhcp6Server
+from trellislib import DualHomedDhcpClient
+from trellislib import DualHomedDhcp4and6Client
+from trellislib import get_mininet, parse_trellis_args, set_up_zebra_config, get_mac_from_int
+from functools import partial
+
+MAX_AGGREGATION = 4
+MAX_ACCESS = 48
+
+class Trellis( Topo ):
+ """Trellis HAG topology"""
+
+ def __init__( self, *args, **kwargs ):
+ Topo.__init__( self, *args, **kwargs )
+
+ # Spines
+ s226 = self.addSwitch('s226', dpid='226')
+ s227 = self.addSwitch('s227', dpid='227')
+
+ # Leaves
+ s203 = self.addSwitch('s203', dpid='203')
+ s204 = self.addSwitch('s204', dpid='204')
+ s205 = self.addSwitch('s205', dpid='205')
+ s206 = self.addSwitch('s206', dpid='206')
+
+ # Leaf-Spine Links
+ self.addLink(s226, s203)
+ self.addLink(s226, s203)
+ self.addLink(s226, s204)
+ self.addLink(s226, s204)
+ self.addLink(s226, s205)
+ self.addLink(s226, s205)
+ self.addLink(s226, s206)
+ self.addLink(s226, s206)
+ self.addLink(s227, s203)
+ self.addLink(s227, s203)
+ self.addLink(s227, s204)
+ self.addLink(s227, s204)
+ self.addLink(s227, s205)
+ self.addLink(s227, s205)
+ self.addLink(s227, s206)
+ self.addLink(s227, s206)
+
+ # Leaf-Leaf Links
+ self.addLink(s203, s204)
+ self.addLink(s205, s206)
+
+ # NOTE avoid using 10.0.1.0/24 which is the default subnet of quaggas
+ # NOTE avoid using 00:00:00:00:00:xx which is the default mac of host behind upstream router
+ # IPv4 Hosts
+ h1 = self.addHost('h1', cls=DhcpClient, mac='00:aa:00:00:00:01')
+ h2 = self.addHost('h2', cls=DhcpClient, mac='00:aa:00:00:00:02')
+ h3 = self.addHost('h3', cls=DhcpClient, mac='00:aa:00:00:00:03')
+ h4 = self.addHost('h4', cls=DhcpClient, mac='00:aa:00:00:00:04')
+ h5 = self.addHost('h5', cls=DhcpClient, mac='00:aa:00:00:00:05')
+ self.addLink(h1, s204)
+ self.addLink(h2, s204)
+ self.addLink(h3, s205)
+ self.addLink(h4, s205)
+ self.addLink(h5, s203)
+
+ # IPv6 Hosts
+ h1v6 = self.addHost('h1v6', cls=Dhcp6Client, mac='00:bb:00:00:00:01', sleep=0.250)
+ h2v6 = self.addHost('h2v6', cls=Dhcp6Client, mac='00:bb:00:00:00:02', sleep=0.250)
+ h3v6 = self.addHost('h3v6', cls=Dhcp6Client, mac='00:bb:00:00:00:03', sleep=0.250)
+ h4v6 = self.addHost('h4v6', cls=Dhcp6Client, mac='00:bb:00:00:00:04', sleep=0.250)
+ h5v6 = self.addHost('h5v6', cls=Dhcp6Client, mac='00:bb:00:00:00:05', sleep=0.250)
+ self.addLink(h1v6, s204)
+ self.addLink(h2v6, s204)
+ self.addLink(h3v6, s205)
+ self.addLink(h4v6, s205)
+ self.addLink(h5v6, s203)
+
+ # Dual-homed IPv4 and IPv6 Host on 203-204
+ dh1 = self.addHost('dh1', cls=DualHomedDhcp4and6Client, mac='00:cc:00:00:00:01', sleep=0.250)
+ self.addLink(dh1, s204)
+ self.addLink(dh1, s203)
+
+ # DHCP server
+ dhcp = self.addHost('dhcp', cls=DhcpServer, mac='00:99:00:00:00:01', ips=['10.0.3.253/24'], gateway='10.0.3.254')
+
+ # DHCPv6 server
+ dhcp6 = self.addHost('dhcp6', cls=Dhcp6Server, mac='00:99:66:00:00:01', ips=['2000::3fd/120'], gateway='2000::3ff')
+
+ # Dataplane L2 plane switch (for DHCP servers)
+ cs1 = self.addSwitch('cs1', cls=OVSBridge)
+ self.addLink(cs1, s205)
+ self.addLink(dhcp, cs1)
+ self.addLink(dhcp6, cs1)
+
+ # Control plane switch (for quagga fpm)
+ cs0 = self.addSwitch('cs0', cls=OVSBridge)
+
+ # Control plane NAT (for quagga fpm)
+ nat = self.addHost('nat', cls=NAT,
+ ip='172.16.0.1/12',
+ subnet=str(ip_network(u'172.16.0.0/12')), inNamespace=False)
+ self.addLink(cs0, nat)
+
+ # Internal Quagga bgp1
+ """
+ intfs = {'bgp1-eth0': [{'ipAddrs': ['10.0.1.2/24', '2000::102/120'], 'mac': '00:88:00:00:00:03', 'vlan': '110'},
+ {'ipAddrs': ['10.0.7.2/24', '2000::702/120'], 'mac': '00:88:00:00:00:03', 'vlan': '170'}],
+ 'bgp1-eth1': {'ipAddrs': ['172.16.0.3/12']}}
+ """
+ intfs = {'bgp1-eth0': {'ipAddrs': ['10.0.1.2/24', '2000::102/120'], 'mac': '00:88:00:00:00:03', 'vlan': '110'},
+ 'bgp1-eth1': {'ipAddrs': ['172.16.0.3/12']}}
+ bgp1 = self.addHost('bgp1', cls=BgpRouter,
+ interfaces=intfs,
+ quaggaConfFile='./bgpdbgp1.conf',
+ zebraConfFile='./zebradbgp1.conf')
+ self.addLink(bgp1, s205)
+ self.addLink(bgp1, cs0)
+
+ # Internal Quagga bgp2
+ """
+ intfs = {'bgp2-eth0': [{'ipAddrs': ['10.0.5.2/24', '2000::502/120'], 'mac': '00:88:00:00:00:04', 'vlan': '150'},
+ {'ipAddrs': ['10.0.6.2/24', '2000::602/120'], 'mac': '00:88:00:00:00:04', 'vlan': '160'}],
+ 'bgp2-eth1': {'ipAddrs': ['172.16.0.4/12']}}
+ """
+ intfs = {'bgp2-eth0': {'ipAddrs': ['10.0.6.2/24', '2000::602/120'], 'mac': '00:88:00:00:00:04', 'vlan': '160'},
+ 'bgp2-eth1': {'ipAddrs': ['172.16.0.4/12']}}
+ bgp2 = self.addHost('bgp2', cls=BgpRouter,
+ interfaces=intfs,
+ quaggaConfFile='./bgpdbgp2.conf',
+ zebraConfFile='./zebradbgp2.conf')
+ self.addLink(bgp2, s206)
+ self.addLink(bgp2, cs0)
+
+ # External Quagga r1
+ intfs = {'r1-eth0': {'ipAddrs': ['10.0.1.1/24', '2000::101/120'], 'mac': '00:88:00:00:00:01'},
+ #'r1-eth1': {'ipAddrs': ['10.0.5.1/24', '2000::501/120'], 'mac': '00:88:00:00:00:11'},
+ 'r1-eth1': {'ipAddrs': ['10.0.99.1/16']},
+ 'r1-eth2': {'ipAddrs': ['2000::9901/120']},
+ 'r1-eth3': {'ipAddrs': ['2000::7701/120']}}
+ r1 = self.addHost('r1', cls=BgpRouter,
+ interfaces=intfs,
+ quaggaConfFile='./bgpdr1.conf')
+ self.addLink(r1, s205)
+
+ # External IPv4 Host behind r1
+ rh1 = self.addHost('rh1', cls=RoutedHost, ips=['10.0.99.2/24'], gateway='10.0.99.1')
+ self.addLink(r1, rh1)
+
+ # External IPv6 Host behind r1
+ rh1v6 = self.addHost('rh1v6', cls=RoutedHost, ips=['2000::9902/120'], gateway='2000::9901')
+ self.addLink(r1, rh1v6)
+
+ # Another external IPv6 Host behind r1
+ rh11v6 = self.addHost('rh11v6', cls=RoutedHost, ips=['2000::7702/120'], gateway='2000::7701')
+ self.addLink(r1, rh11v6)
+
+ # External Quagga r2
+ intfs = {'r2-eth0': {'ipAddrs': ['10.0.6.1/24', '2000::601/120'], 'mac': '00:88:00:00:00:02'},
+ #'r2-eth1': {'ipAddrs': ['10.0.7.1/24', '2000::701/120'], 'mac': '00:88:00:00:00:22'},
+ 'r2-eth1': {'ipAddrs': ['10.0.99.1/16']},
+ 'r2-eth2': {'ipAddrs': ['2000::9901/120']},
+ 'r2-eth3': {'ipAddrs': ['2000::8801/120']}}
+ r2 = self.addHost('r2', cls=BgpRouter,
+ interfaces=intfs,
+ quaggaConfFile='./bgpdr2.conf')
+ self.addLink(r2, s206)
+
+ # External IPv4 Host behind r2
+ rh2 = self.addHost('rh2', cls=RoutedHost, ips=['10.0.99.2/24'], gateway='10.0.99.1')
+ self.addLink(r2, rh2)
+
+ # External IPv6 Host behind r2
+ rh2v6 = self.addHost('rh126', cls=RoutedHost, ips=['2000::9902/120'], gateway='2000::9901')
+ self.addLink(r2, rh2v6)
+
+ # Another external IPv6 Host behind r1
+ rh22v6 = self.addHost('rh22v6', cls=RoutedHost, ips=['2000::8802/120'], gateway='2000::8801')
+ self.addLink(r2, rh22v6)
+
+ # Dual-homed IPv4 Host for 205-206
+ dh2 = self.addHost('dh2', cls=DualHomedDhcpClient, mac='00:cc:00:00:00:02')
+ self.addLink(dh2, s205)
+ self.addLink(dh2, s206)
+
+ # ----- Secondary fabric -----
+
+ # Spines(HAG)
+ s246 = self.addSwitch('s246', dpid='246')
+ s247 = self.addSwitch('s247', dpid='247')
+
+ # HAG - Spine Links
+ self.addLink(s246, s226)
+ self.addLink(s247, s227)
+
+ # Access network - aggregation switches and access devices
+ aggregation = int(args[0])
+ aggregation = min(max(0, aggregation), MAX_AGGREGATION)
+ for i in range(0, aggregation):
+ # Adding the aggregation switch
+ aggregation_dev = self.addSwitch('s%d' % (i + 1) , dpid='%s' % (i + 1))
+ # Adding MAX_ACCESS access devices
+ for j in range (1, MAX_ACCESS + 1):
+ mac_int = j + (MAX_ACCESS * i)
+ mac = get_mac_from_int(mac_int)
+ # Half are IPv6 and half are IPv4
+ if j % 2 == 0:
+ access_dev = self.addHost('acc%d' % mac_int, cls=Dhcp6Client, mac=mac, sleep=0.250)
+ else:
+ access_dev = self.addHost('acc%d' % mac_int, cls=DhcpClient, mac=mac)
+ self.addLink(aggregation_dev, access_dev)
+ # HAG - Aggregation Links
+ self.addLink(s246, aggregation_dev)
+ self.addLink(s247, aggregation_dev)
+
+topos = { 'trellis' : Trellis }
+
+if __name__ == "__main__":
+ setLogLevel('info')
+ arguments = parse_trellis_args()
+
+ topo = Trellis(arguments.aggregation)
+ switch = partial(OVSSwitch, protocols='OpenFlow13')
+ set_up_zebra_config(arguments.controllers)
+ net = get_mininet(arguments, topo, switch)
+
+ net.start()
+ CLI(net)
+ net.stop()
diff --git a/trellis/trellis_mcast_netcfg_gen.json b/trellis/trellis_mcast_netcfg_gen.json
new file mode 100644
index 0000000..bc203c8
--- /dev/null
+++ b/trellis/trellis_mcast_netcfg_gen.json
@@ -0,0 +1,646 @@
+{
+ "apps":{
+ "org.onosproject.dhcprelay":{
+ "default":[
+ {
+ "dhcpServerConnectPoint":"of:0000000000000205/10",
+ "serverIps":[
+ "10.0.3.253",
+ "2000::3fd"
+ ]
+ }
+ ]
+ }
+ },
+ "devices":{
+ "of:0000000000000203":{
+ "segmentrouting":{
+ "name":"s203",
+ "ipv4NodeSid":203,
+ "ipv4Loopback":"192.168.0.203",
+ "ipv6NodeSid":213,
+ "ipv6Loopback":"2000::c0a8:0203",
+ "routerMac":"00:00:00:00:02:03",
+ "isEdgeRouter":true,
+ "pairDeviceId":"of:0000000000000204",
+ "pairLocalPort":5,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s203",
+ "driver":"ofdpa-ovs",
+ "latitude":"36.766",
+ "longitude":"-99.359"
+ }
+ },
+ "of:0000000000000204":{
+ "segmentrouting":{
+ "name":"s204",
+ "ipv4NodeSid":204,
+ "ipv4Loopback":"192.168.0.204",
+ "ipv6NodeSid":214,
+ "ipv6Loopback":"2000::c0a8:0204",
+ "routerMac":"00:00:00:00:02:03",
+ "isEdgeRouter":true,
+ "pairDeviceId":"of:0000000000000203",
+ "pairLocalPort":5,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s204",
+ "driver":"ofdpa-ovs",
+ "latitude":"36.766",
+ "longitude":"-94.359"
+ }
+ },
+ "of:0000000000000205":{
+ "segmentrouting":{
+ "name":"s205",
+ "ipv4NodeSid":205,
+ "ipv4Loopback":"192.168.0.205",
+ "ipv6NodeSid":215,
+ "ipv6Loopback":"2000::c0a8:0205",
+ "routerMac":"00:00:00:00:02:05",
+ "isEdgeRouter":true,
+ "adjacencySids":[
+
+ ],
+ "pairDeviceId":"of:0000000000000206",
+ "pairLocalPort":5
+ },
+ "basic":{
+ "name":"s205",
+ "driver":"ofdpa-ovs",
+ "latitude":"36.766",
+ "longitude":"-84.89"
+ }
+ },
+ "of:0000000000000206":{
+ "segmentrouting":{
+ "name":"s206",
+ "ipv4NodeSid":206,
+ "ipv4Loopback":"192.168.0.206",
+ "ipv6NodeSid":216,
+ "ipv6Loopback":"2000::c0a8:0206",
+ "routerMac":"00:00:00:00:02:05",
+ "isEdgeRouter":true,
+ "adjacencySids":[
+
+ ],
+ "pairDeviceId":"of:0000000000000205",
+ "pairLocalPort":5
+ },
+ "basic":{
+ "name":"s206",
+ "driver":"ofdpa-ovs",
+ "latitude":"36.766",
+ "longitude":"-80.029"
+ }
+ },
+ "of:0000000000000226":{
+ "segmentrouting":{
+ "name":"s226",
+ "ipv4NodeSid":226,
+ "ipv4Loopback":"192.168.0.226",
+ "ipv6NodeSid":236,
+ "ipv6Loopback":"2000::c0a8:0226",
+ "routerMac":"00:00:00:00:02:26",
+ "isEdgeRouter":false,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s226",
+ "driver":"ofdpa-ovs",
+ "latitude":"44.15",
+ "longitude":"-95.679"
+ }
+ },
+ "of:0000000000000227":{
+ "segmentrouting":{
+ "name":"s227",
+ "ipv4NodeSid":227,
+ "ipv4Loopback":"192.168.0.227",
+ "ipv6NodeSid":237,
+ "ipv6Loopback":"2000::c0a8:0227",
+ "routerMac":"00:00:00:00:02:27",
+ "isEdgeRouter":false,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s227",
+ "driver":"ofdpa-ovs",
+ "latitude":"44.205",
+ "longitude":"-84.359"
+ }
+ },
+ "of:0000000000000247":{
+ "segmentrouting":{
+ "name":"s247",
+ "ipv4NodeSid":247,
+ "ipv4Loopback":"192.168.0.247",
+ "ipv6NodeSid":257,
+ "ipv6Loopback":"2000::c0a8:0247",
+ "routerMac":"00:00:00:00:02:47",
+ "isEdgeRouter":false,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s247",
+ "driver":"ofdpa-ovs",
+ "latitude":"40.205",
+ "longitude":"-109.359"
+ }
+ },
+ "of:0000000000000246":{
+ "segmentrouting":{
+ "name":"s246",
+ "ipv4NodeSid":246,
+ "ipv4Loopback":"192.168.0.246",
+ "ipv6NodeSid":256,
+ "ipv6Loopback":"2000::c0a8:0246",
+ "routerMac":"00:00:00:00:02:46",
+ "isEdgeRouter":false,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s246",
+ "driver":"ofdpa-ovs",
+ "latitude":"40.15",
+ "longitude":"-113.679"
+ }
+ },
+ "of:0000000000000001":{
+ "segmentrouting":{
+ "name":"s1",
+ "ipv4NodeSid":101,
+ "ipv4Loopback":"192.168.0.101",
+ "ipv6NodeSid":111,
+ "ipv6Loopback":"2000::c0a8:0101",
+ "routerMac":"00:00:00:00:01:01",
+ "isEdgeRouter":true,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s1",
+ "driver":"ofdpa-ovs",
+ "latitude":"36.766",
+ "longitude":"-105.359"
+ }
+ },
+ "of:0000000000000002":{
+ "segmentrouting":{
+ "name":"s2",
+ "ipv4NodeSid":102,
+ "ipv4Loopback":"192.168.0.102",
+ "ipv6NodeSid":112,
+ "ipv6Loopback":"2000::c0a8:0102",
+ "routerMac":"00:00:00:00:01:02",
+ "isEdgeRouter":true,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s2",
+ "driver":"ofdpa-ovs",
+ "latitude":"36.766",
+ "longitude":"-109.359"
+ }
+ },
+ "of:0000000000000003":{
+ "segmentrouting":{
+ "name":"s3",
+ "ipv4NodeSid":103,
+ "ipv4Loopback":"192.168.0.103",
+ "ipv6NodeSid":113,
+ "ipv6Loopback":"2000::c0a8:0103",
+ "routerMac":"00:00:00:00:01:03",
+ "isEdgeRouter":true,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s3",
+ "driver":"ofdpa-ovs",
+ "latitude":"36.766",
+ "longitude":"-113.359"
+ }
+ },
+ "of:0000000000000004":{
+ "segmentrouting":{
+ "name":"s4",
+ "ipv4NodeSid":104,
+ "ipv4Loopback":"192.168.0.104",
+ "ipv6NodeSid":114,
+ "ipv6Loopback":"2000::c0a8:0104",
+ "routerMac":"00:00:00:00:01:04",
+ "isEdgeRouter":true,
+ "adjacencySids":[
+
+ ]
+ },
+ "basic":{
+ "name":"s4",
+ "driver":"ofdpa-ovs",
+ "latitude":"36.766",
+ "longitude":"-117.359"
+ }
+ }
+ },
+ "ports":{
+ "of:0000000000000203/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.1.2.254/24",
+ "2001::2ff/120"
+ ],
+ "vlan-tagged":[
+ 21
+ ]
+ }
+ ]
+ },
+ "of:0000000000000203/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.4.254/24"
+ ],
+ "vlan-untagged":22
+ }
+ ]
+ },
+ "of:0000000000000203/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::4ff/120"
+ ],
+ "vlan-untagged":23
+ }
+ ]
+ },
+ "of:0000000000000203/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.1.2.254/24",
+ "2001::2ff/120"
+ ],
+ "vlan-untagged":21
+ }
+ ]
+ },
+ "of:0000000000000204/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.1.2.254/24",
+ "2001::2ff/120"
+ ],
+ "vlan-tagged":[
+ 21
+ ]
+ }
+ ]
+ },
+ "of:0000000000000204/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.2.254/24"
+ ],
+ "vlan-untagged":20
+ }
+ ]
+ },
+ "of:0000000000000204/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.2.254/24"
+ ],
+ "vlan-untagged":20
+ }
+ ]
+ },
+ "of:0000000000000204/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::2ff/120"
+ ],
+ "vlan-untagged":40
+ }
+ ]
+ },
+ "of:0000000000000204/9":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::2ff/120"
+ ],
+ "vlan-untagged":40
+ }
+ ]
+ },
+ "of:0000000000000204/10":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.1.2.254/24",
+ "2001::2ff/120"
+ ],
+ "vlan-untagged":21
+ }
+ ]
+ },
+ "of:0000000000000205/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.3.254/24"
+ ],
+ "vlan-untagged":30
+ }
+ ]
+ },
+ "of:0000000000000205/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.3.254/24"
+ ],
+ "vlan-untagged":30
+ }
+ ]
+ },
+ "of:0000000000000205/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::3ff/120"
+ ],
+ "vlan-untagged":50
+ }
+ ]
+ },
+ "of:0000000000000205/9":{
+ "interfaces":[
+ {
+ "ips":[
+ "2000::3ff/120"
+ ],
+ "vlan-untagged":50
+ }
+ ]
+ },
+ "of:0000000000000205/10":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.3.254/24",
+ "2000::3ff/120"
+ ],
+ "vlan-untagged":30
+ }
+ ]
+ },
+ "of:0000000000000205/11":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.1.254/24",
+ "2000::1ff/120"
+ ],
+ "vlan-tagged":[
+ 110
+ ]
+ }
+ ]
+ },
+ "of:0000000000000205/12":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.1.254/24",
+ "2000::1ff/120"
+ ],
+ "vlan-untagged":110
+ }
+ ]
+ },
+ "of:0000000000000205/13":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.5.6.254/24"
+ ],
+ "vlan-untagged":56
+ }
+ ]
+ },
+ "of:0000000000000205/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.5.6.254/24"
+ ],
+ "vlan-tagged":[
+ 56
+ ]
+ }
+ ]
+ },
+ "of:0000000000000206/5":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.5.6.254/24"
+ ],
+ "vlan-tagged":[
+ 56
+ ]
+ }
+ ]
+ },
+ "of:0000000000000206/6":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.6.254/24",
+ "2000::6ff/120"
+ ],
+ "vlan-tagged":[
+ 160
+ ]
+ }
+ ]
+ },
+ "of:0000000000000206/8":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.5.6.254/24"
+ ],
+ "vlan-untagged":56
+ }
+ ]
+ },
+ "of:0000000000000206/7":{
+ "interfaces":[
+ {
+ "ips":[
+ "10.0.6.254/24",
+ "2000::6ff/120"
+ ],
+ "vlan-untagged":160
+ }
+ ]
+ }
+ },
+ "hosts":{
+ "00:AA:00:00:00:05/-1":{
+ "basic":{
+ "name":"h5",
+ "latitude":33,
+ "longitude":-99.359
+ }
+ },
+ "00:BB:00:00:00:05/-1":{
+ "basic":{
+ "name":"h5v6",
+ "latitude":33,
+ "longitude":-101.359
+ }
+ },
+ "00:CC:00:00:00:01/-1":{
+ "basic":{
+ "name":"dh1",
+ "latitude":33,
+ "longitude":-96.959
+ }
+ },
+ "00:AA:00:00:00:01/-1":{
+ "basic":{
+ "name":"h1",
+ "latitude":33,
+ "longitude":-94.359
+ }
+ },
+ "00:AA:00:00:00:02/-1":{
+ "basic":{
+ "name":"h2",
+ "latitude":33,
+ "longitude":-92.359
+ }
+ },
+ "00:BB:00:00:00:01/-1":{
+ "basic":{
+ "name":"h1v6",
+ "latitude":36.766,
+ "longitude":-92.359
+ }
+ },
+ "00:BB:00:00:00:02/-1":{
+ "basic":{
+ "name":"h2v6",
+ "latitude":34.7,
+ "longitude":-92.359
+ }
+ },
+ "00:AA:00:00:00:03/-1":{
+ "basic":{
+ "name":"h3",
+ "latitude":36.766,
+ "longitude":-87.359
+ }
+ },
+ "00:AA:00:00:00:04/-1":{
+ "basic":{
+ "name":"h4",
+ "latitude":34.766,
+ "longitude":-87.359
+ }
+ },
+ "00:BB:00:00:00:03/-1":{
+ "basic":{
+ "name":"h3v6",
+ "latitude":32.766,
+ "longitude":-87.359
+ }
+ },
+ "00:BB:00:00:00:04/-1":{
+ "basic":{
+ "name":"h4v6",
+ "latitude":30.766,
+ "longitude":-87.359
+ }
+ },
+ "00:99:00:00:00:01/-1":{
+ "basic":{
+ "name":"dhcp",
+ "latitude":30.766,
+ "longitude":-85.359
+ }
+ },
+ "00:99:66:00:00:01/-1":{
+ "basic":{
+ "name":"dhcpv6",
+ "latitude":30.766,
+ "longitude":-83.359
+ }
+ },
+ "00:CC:00:00:00:02/-1":{
+ "basic":{
+ "name":"dh2",
+ "latitude":30.766,
+ "longitude":-81.359
+ }
+ },
+ "00:88:00:00:00:04/160":{
+ "basic":{
+ "name":"quagga2",
+ "latitude":36.766,
+ "longitude":-77.359
+ }
+ },
+ "00:88:00:00:00:02/-1":{
+ "basic":{
+ "name":"upstream2",
+ "latitude":34.766,
+ "longitude":-77.359
+ }
+ },
+ "00:88:00:00:00:03/110":{
+ "basic":{
+ "name":"quagga1",
+ "latitude":32.766,
+ "longitude":-77.359
+ }
+ },
+ "00:88:00:00:00:01/-1":{
+ "basic":{
+ "name":"upstream1",
+ "latitude":30.766,
+ "longitude":-77.359
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/trellis/trellis_mcast_netcfg_gen.py b/trellis/trellis_mcast_netcfg_gen.py
new file mode 100755
index 0000000..e2915ab
--- /dev/null
+++ b/trellis/trellis_mcast_netcfg_gen.py
@@ -0,0 +1,91 @@
+#! /usr/bin/python
+
+import json
+
+# It contains the fixed parts of the netcfg.
+# In this case, they are the ports of the leafs
+# hosts attached to the leafs. These are parts
+# that at the moment we don't need to scale
+netcfg = {}
+
+# Base latitude and longitude for access devices
+groups_cord = {
+ "0" : [36, -106],
+ "1" : [36, -110],
+ "2" : [36, -114],
+ "3" : [36, -118]
+}
+
+# Groups, host per groups and networks for each access device
+groups = 4
+hosts_per_group = 48
+networks = (("10.100.1.254/24", "2002::1ff/120", 100, 200), \
+ ("10.100.2.254/24", "2002::2ff/120", 101, 201), \
+ ("10.100.3.254/24", "2002::3ff/120", 102, 202), \
+ ("10.100.4.254/24", "2002::4ff/120", 103, 203), )
+
+def generateDpid(device):
+ dpid = hex( int( device ) )[ 2: ]
+ return '0' * ( 16 - len( dpid ) ) + dpid
+
+# Generate ports config
+def generate_port_cfg(host, device, networks):
+ device_index = device + 1
+ port_index = host + 1
+ dpid = generateDpid(device_index)
+ dpid_port = 'of:%s/%s' %(dpid, port_index)
+ netcfg['ports'][dpid_port] = {}
+ interfaces = []
+ interface = {}
+ ips = []
+ network = ""
+ vlan = ""
+ if port_index % 2 == 0:
+ network = networks[1]
+ vlan = networks[3]
+ else:
+ network = networks[0]
+ vlan = networks[2]
+ ips.append(network)
+ interface['ips'] = ips
+ interface['vlan-untagged'] = vlan
+ interfaces.append(interface)
+ netcfg['ports'][dpid_port]["interfaces"] = interfaces
+
+# Generate hosts coordinate
+def generate_host_cfg(mac, index, layer, group, counter):
+ lat = groups_cord[str(group)][0] - layer
+ lon = index + groups_cord[str(group)][1]
+ name = "%s%d" %("acc", counter + 1)
+ data = {
+ "basic" : {}
+ }
+ data["basic"]["name"] = name
+ data["basic"]["latitude"] = float(lat)
+ data["basic"]["longitude"] = float(lon)
+ netcfg["hosts"]["%s/-1" % mac] = data
+
+# Read initial netcfg from file
+with open('trellis_mcast_netcfg_gen.json') as json_file:
+ netcfg = json.load(json_file)
+
+# Main function
+counter = 0
+for g in range(0, groups):
+ index = 0
+ layer = 0
+ for h in range(0, hosts_per_group):
+ mac = hex(counter + 1)[2:]
+ mac = '0' * ( 12 - len( mac ) ) + mac
+ mac = ':'.join(s.encode('hex') for s in mac.decode('hex'))
+ index = counter % 3
+ if index == 0 :
+ layer = layer + 1
+ generate_port_cfg(h, g, networks[g])
+ generate_host_cfg(mac, index, layer, g, counter)
+ counter = counter + 1
+
+# Dump the netcfg on file
+with open('data.txt', 'w') as outfile:
+ json.dump(netcfg, outfile)
+
diff --git a/trellis/trellislib.py b/trellis/trellislib.py
index ad6d5a0..13bb40c 100644
--- a/trellis/trellislib.py
+++ b/trellis/trellislib.py
@@ -86,7 +86,7 @@
def config(self, **kwargs):
super(DhcpClient, self).config(**kwargs)
self.cmd('ip addr flush dev %s' % self.defaultIntf())
- self.cmd('dhclient -q -4 -nw -pf %s -lf %s %s' % (self.pidFile, self.leaseFile, self.defaultIntf()))
+ self.cmd('dhclient -q -4 -nw -pf %s -lf %s %s &' % (self.pidFile, self.leaseFile, self.defaultIntf()))
disable_offload(self, self.defaultIntf())
@@ -100,12 +100,13 @@
super(Dhcp6Client, self).__init__(name, **kwargs)
self.pidFile = '/run/dhclient-%s.pid' % self.name
self.leaseFile = '/var/lib/dhcp/dhcpclient6-%s.lease' % (self.name, )
+ self.sleep = kwargs.get('sleep', 3)
def config(self, **kwargs):
super(Dhcp6Client, self).config(**kwargs)
self.cmd('ip -4 addr flush dev %s' % self.defaultIntf())
- time.sleep(3)
- self.cmd('dhclient -q -6 -nw -pf %s -lf %s %s' % (self.pidFile, self.leaseFile, self.defaultIntf()))
+ time.sleep(self.sleep)
+ self.cmd('dhclient -q -6 -nw -pf %s -lf %s %s &' % (self.pidFile, self.leaseFile, self.defaultIntf()))
disable_offload(self, self.defaultIntf())
@@ -122,15 +123,16 @@
self.pidFile6 = '/run/dhclient-%s-6.pid' % self.name
self.leaseFile4 = '/var/lib/dhcp/dhcpclient-%s.lease' % (self.name, )
self.leaseFile6 = '/var/lib/dhcp/dhcpclient6-%s.lease' % (self.name, )
+ self.sleep = kwargs.get('sleep', 3)
def config(self, **kwargs):
super(Dhcp4and6Client, self).config(**kwargs)
self.cmd('ip addr flush dev %s' % self.defaultIntf())
- self.cmd('dhclient -q -4 -nw -pf %s -lf %s %s' % (self.pidFile4, self.leaseFile4, self.defaultIntf()))
+ self.cmd('dhclient -q -4 -nw -pf %s -lf %s %s &' % (self.pidFile4, self.leaseFile4, self.defaultIntf()))
self.cmd('ip -4 addr flush dev %s' % self.defaultIntf())
- time.sleep(3)
- self.cmd('dhclient -q -6 -nw -pf %s -lf %s %s' % (self.pidFile6, self.leaseFile6, self.defaultIntf()))
+ time.sleep(self.sleep)
+ self.cmd('dhclient -q -6 -nw -pf %s -lf %s %s &' % (self.pidFile6, self.leaseFile6, self.defaultIntf()))
disable_offload(self, self.defaultIntf())
@@ -219,7 +221,7 @@
self.cmd('ip addr flush dev %s' % self.defaultIntf())
self.cmd('ip link add link %s name %s type vlan id %s' % (self.defaultIntf(), self.vlanIntf, self.vlan))
self.cmd('ip link set up %s' % self.vlanIntf)
- self.cmd('dhclient -q -4 -nw -pf %s %s' % (self.pidFile, self.vlanIntf))
+ self.cmd('dhclient -q -4 -nw -pf %s %s &' % (self.pidFile, self.vlanIntf))
disable_offload(self, self.vlanIntf)
@@ -265,7 +267,7 @@
self.cmd('ip addr flush dev %s' % intf0)
self.cmd('ip addr flush dev %s' % intf1)
self.cmd('ip link set %s up' % self.bond0)
- self.cmd('dhclient -q -4 -nw -pf %s %s' % (self.pidFile, self.bond0))
+ self.cmd('dhclient -q -4 -nw -pf %s %s &' % (self.pidFile, self.bond0))
disable_offload(self, self.bond0)
@@ -314,6 +316,7 @@
self.pidFile4 = '/run/dhclient-%s-4.pid' % self.name
self.pidFile6 = '/run/dhclient-%s-6.pid' % self.name
self.bond0 = None
+ self.sleep = kwargs.get('sleep', 3)
def config(self, **kwargs):
super(DualHomedDhcp4and6Client, self).config(**kwargs)
@@ -330,10 +333,10 @@
self.cmd('ip -4 addr flush dev %s' % intf1)
self.cmd('ip addr flush dev %s' % intf0)
self.cmd('ip addr flush dev %s' % intf1)
- time.sleep(3)
+ time.sleep(self.sleep)
self.cmd('ip link set %s up' % self.bond0)
- self.cmd('dhclient -q -4 -nw -pf %s %s' % (self.pidFile4, self.bond0))
- self.cmd('dhclient -q -6 -nw -pf %s %s' % (self.pidFile6, self.bond0))
+ self.cmd('dhclient -q -4 -nw -pf %s %s &' % (self.pidFile4, self.bond0))
+ self.cmd('dhclient -q -6 -nw -pf %s %s &' % (self.pidFile6, self.bond0))
disable_offload(self, self.bond0)
@@ -364,11 +367,19 @@
return 'fe80::{:04x}:{:02x}ff:fe{:02x}:{:04x}'.format(high2, high1, low1, low2)
+def get_mac_from_int(number):
+ mac = hex(number)[2:]
+ mac = '0' * ( 12 - len( mac ) ) + mac
+ mac = ':'.join(s.encode('hex') for s in mac.decode('hex'))
+ return mac
+
# Parses Trellis parameters
def parse_trellis_args():
parser = argparse.ArgumentParser(description="Trellis Arguments")
parser.add_argument("-c", "--controllers", help = "Comma Separated List of ONOS controllers",
required = True, default = "")
+ parser.add_argument("-a", "--aggregation", help = "number of aggregation switches (1-4)",
+ required = False, default = 1)
return parser.parse_args()
# Gets a mininet instance