http: fix client receiving large data
[vpp.git] / test / vpp_teib.py
1 #!/usr/bin/env python3
2 """
3   TEIB objects
4 """
5
6 from vpp_object import VppObject
7
8
9 def find_teib(test, ne):
10     ns = test.vapi.teib_dump()
11     for n in ns:
12         if ne.peer == str(n.entry.peer) and ne.itf._sw_if_index == n.entry.sw_if_index:
13             return True
14     return False
15
16
17 class VppTeib(VppObject):
18     def __init__(self, test, itf, peer, nh, table_id=0):
19         self._test = test
20         self.table_id = table_id
21         self.peer = peer
22         self.itf = itf
23         self.nh = nh
24
25     def add_vpp_config(self):
26         r = self._test.vapi.teib_entry_add_del(
27             is_add=1,
28             entry={
29                 "nh_table_id": self.table_id,
30                 "sw_if_index": self.itf.sw_if_index,
31                 "peer": self.peer,
32                 "nh": self.nh,
33             },
34         )
35         self._test.registry.register(self, self._test.logger)
36         return self
37
38     def remove_vpp_config(self):
39         r = self._test.vapi.teib_entry_add_del(
40             is_add=0,
41             entry={
42                 "nh_table_id": self.table_id,
43                 "sw_if_index": self.itf.sw_if_index,
44                 "peer": self.peer,
45             },
46         )
47
48     def query_vpp_config(self):
49         return find_teib(self._test, self)
50
51     def object_id(self):
52         return "teib-%s-%s" % (self.itf, self.peer)