summaryrefslogtreecommitdiffstats
path: root/test/vpp_teib.py
blob: ee2d89fe08051766e18f3412d144b91ce0f042aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python3
"""
  TEIB objects
"""

from vpp_object import VppObject


def find_teib(test, ne):
    ns = test.vapi.teib_dump()
    for n in ns:
        if ne.peer == str(n.entry.peer) \
           and ne.itf._sw_if_index == n.entry.sw_if_index:
            return True
    return False


class VppTeib(VppObject):

    def __init__(self, test, itf, peer, nh, table_id=0):
        self._test = test
        self.table_id = table_id
        self.peer = peer
        self.itf = itf
        self.nh = nh

    def add_vpp_config(self):
        r = self._test.vapi.teib_entry_add_del(
            is_add=1,
            entry={
                'nh_table_id': self.table_id,
                'sw_if_index': self.itf.sw_if_index,
                'peer': self.peer,
                'nh': self.nh,
            })
        self._test.registry.register(self, self._test.logger)
        return self

    def remove_vpp_config(self):
        r = self._test.vapi.teib_entry_add_del(
            is_add=0,
            entry={
                'nh_table_id': self.table_id,
                'sw_if_index': self.itf.sw_if_index,
                'peer': self.peer,
            })

    def query_vpp_config(self):
        return find_teib(self._test, self)

    def object_id(self):
        return ("teib-%s-%s" % (self.itf, self.peer))
n>, "mactime enable-disable loop0 disable", "mactime enable-disable sw_if_index 9999", "bin mactime_enable_disable loop0", "bin mactime_enable_disable loop0 disable", "bin mactime_enable_disable sw_if_index 1", "set interface state loop0 up", "clear mactime", "set ip neighbor loop0 192.168.1.1 00:d0:2d:5e:86:85", "bin mactime_add_del_range name sallow " "mac 00:d0:2d:5e:86:85 allow-static del", "bin mactime_add_del_range name sallow " "mac 00:d0:2d:5e:86:85 allow-static", "bin mactime_add_del_range name sallow " "mac 00:d0:2d:5e:86:85 allow-static del", "bin mactime_add_del_range name sallow " "mac 00:d0:2d:5e:86:85 allow-static", "bin mactime_add_del_range name sblock " "mac 01:00:5e:7f:ff:fa drop-static", "bin mactime_add_del_range name ddrop " "mac c8:bc:c8:5a:ba:f3 drop-range Sun - Sat " "00:00 - 23:59", "bin mactime_add_del_range name dallow " "mac c8:bc:c8:5a:ba:f4 allow-range Sun - Sat " "00:00 - 23:59", "bin mactime_add_del_range name multi " "mac c8:bc:c8:f0:f0:f0 allow-range Sun - Mon " "00:00 - 23:59 Tue - Sat 00:00 - 23:59", "bin mactime_add_del_range bogus", "bin mactime_add_del_range mac 01:00:5e:7f:f0:f0 allow-static", "bin mactime_add_del_range " "name tooloooooooooooooooooooooooooooooooooooooooooooooooo" "nnnnnnnnnnnnnnnnnnnnnnnnnnnng mac 00:00:de:ad:be:ef " "allow-static", "packet-generator new {\n" " name allow\n" " limit 15\n" " size 128-128\n" " interface loop0\n" " node ethernet-input\n" " data {\n" " IP6: 00:d0:2d:5e:86:85 -> 00:0d:ea:d0:00:00\n" " ICMP: db00::1 -> db00::2\n" " incrementing 30\n" " }\n", "}\n", "packet-generator new {\n" " name deny\n" " limit 15\n" " size 128-128\n" " interface loop0\n" " node ethernet-input\n" " data {\n" " IP6: 01:00:5e:7f:ff:fa -> 00:0d:ea:d0:00:00\n" " ICMP: db00::1 -> db00::2\n" " incrementing 30\n" " }\n", "}\n", "packet-generator new {\n" " name ddrop\n" " limit 15\n" " size 128-128\n" " interface loop0\n" " node ethernet-input\n" " data {\n" " IP6: c8:bc:c8:5a:ba:f3 -> 00:0d:ea:d0:00:00\n" " ICMP: db00::1 -> db00::2\n" " incrementing 30\n" " }\n", "}\n", "packet-generator new {\n" " name dallow\n" " limit 15\n" " size 128-128\n" " interface loop0\n" " node ethernet-input\n" " data {\n" " IP6: c8:bc:c8:5a:ba:f4 -> 00:0d:ea:d0:00:00\n" " ICMP: db00::1 -> db00::2\n" " incrementing 30\n" " }\n" "}\n" "packet-generator new {\n" " name makeentry\n" " limit 15\n" " size 128-128\n" " interface loop0\n" " node ethernet-input\n" " data {\n" " IP6: c8:bc:c8:5a:b0:0b -> 00:0d:ea:d0:00:00\n" " ICMP: db00::1 -> db00::2\n" " incrementing 30\n" " }\n" "}\n" "packet-generator new {\n" " name tx\n" " limit 15\n" " size 128-128\n" " interface local0\n" " tx-interface loop0\n" " node loop0-output\n" " data {\n" " hex 0x01005e7ffffa000dead000000800" "0102030405060708090a0b0c0d0e0f0102030405\n" " }\n" "}\n" "trace add pg-input 2", "pa en", "show mactime verbose 2", "show trace", "show error"] for cmd in cmds: r = self.vapi.cli_return_response(cmd) if r.retval != 0: if hasattr(r, 'reply'): self.logger.info(cmd + " FAIL reply " + r.reply) else: self.logger.info(cmd + " FAIL retval " + str(r.retval)) if __name__ == '__main__': unittest.main(testRunner=VppTestRunner)