diff options
Diffstat (limited to 'test/scenario_test/quagga_access.py')
-rw-r--r-- | test/scenario_test/quagga_access.py | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/test/scenario_test/quagga_access.py b/test/scenario_test/quagga_access.py index 87152c02..df2eb938 100644 --- a/test/scenario_test/quagga_access.py +++ b/test/scenario_test/quagga_access.py @@ -17,17 +17,37 @@ import sys import telnetlib PASSWORD = "zebra" +CONN_PASSWORD = "hogehoge" QLPORT = 2605 + def login(host): tn = telnetlib.Telnet(host, QLPORT) tn.read_until("Password: ") tn.write(PASSWORD + "\n") - tn.write("enable\n") - #print tn.read_all() return tn + +def add_neighbor(tn, as_number, neighbor_address, remote_as): + tn.write("configure terminal\n") + tn.write("router bgp "+str(as_number)+"\n") + tn.write("neighbor " + neighbor_address + " remote-as " + remote_as + "\n") + tn.write("neighbor " + neighbor_address + " password " + CONN_PASSWORD + "\n") + tn.write("exit\n") + tn.write("exit\n") + tn.read_until("bgpd#") + + +def add_neighbor_metric(tn, as_number, neighbor_address, metric): + tn.write("configure terminal\n") + tn.write("router bgp "+str(as_number)+"\n") + tn.write("neighbor " + neighbor_address + " route-map MED" + metric + " out\n") + tn.write("exit\n") + tn.write("exit\n") + tn.read_until("bgpd#") + + def add_network(tn, as_number, network): tn.write("configure terminal\n") tn.write("router bgp "+str(as_number)+"\n") @@ -36,12 +56,28 @@ def add_network(tn, as_number, network): tn.write("exit\n") print tn.read_until("bgpd#") + +def add_metric(tn, metric, network): + tn.write("configure terminal\n") + tn.write("access-list 1 permit " + network + " 0.0.0.255\n") + tn.write("route-map MED" + metric + " permit 10\n") + tn.write("match ip address 1\n") + tn.write("set metric " + metric + "\n") + tn.write("route-map MED" + metric + " permit 10\n") + tn.write("set metric\n") + tn.read_until("bgpd(config-route-map)#") + tn.write("exit\n") + tn.write("exit\n") + return tn + + def show_config(tn): tn.write("show run\n") print tn.read_until("bgpd#") tn.write("exit\n") print tn.read_all() + def show_rib(tn): tn.write("show ip bgp\n") tn.read_until(" Network Next Hop Metric LocPrf Weight Path") @@ -49,6 +85,11 @@ def show_rib(tn): # print header return rib_parser(rib) + +def clear_ip_bgp(tn): + tn.write("clear ip bgp *\n") + tn.read_until("bgpd#") + def rib_parser(rib): lines = rib.split("\n") paths = [] |