diff options
Diffstat (limited to 'test/scenario_test/quagga_access.py')
-rw-r--r-- | test/scenario_test/quagga_access.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/test/scenario_test/quagga_access.py b/test/scenario_test/quagga_access.py new file mode 100644 index 00000000..87152c02 --- /dev/null +++ b/test/scenario_test/quagga_access.py @@ -0,0 +1,68 @@ +# Copyright (C) 2014 Nippon Telegraph and Telephone Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +import telnetlib + +PASSWORD = "zebra" +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_network(tn, as_number, network): + tn.write("configure terminal\n") + tn.write("router bgp "+str(as_number)+"\n") + tn.write("network "+ network + " \n") + tn.write("exit\n") + tn.write("exit\n") + print tn.read_until("bgpd#") + +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") + rib = tn.read_until("bgpd#") + # print header + return rib_parser(rib) + +def rib_parser(rib): + lines = rib.split("\n") + paths = [] + for line in lines: + path = {} + if line[0] == "*": + elems = line.split() + path['Network'] = elems[1] + path['Next Hop'] = elems[2] + # path['Metric'] = elems[3] + # path['LocPrf'] = elems[4] + # path['Weight'] = elems[5] + # path['Path'] = elems[6] + if len(path) > 0: + paths.append(path) + return paths + |