1 from vpp_object import VppObject
4 class VppDHCPProxy(VppObject):
15 self._rx_vrf_id = rx_vrf_id
16 self._server_vrf_id = server_vrf_id
17 self._dhcp_server = dhcp_server
18 self._dhcp_src_address = dhcp_src_address
26 if self.query_vpp_config():
27 raise Exception('Vpp config present')
28 self._rx_vrf_id = rx_vrf_id
29 self._server_vrf_id = server_vrf_id
30 self._dhcp_server = dhcp_server
31 self._dhcp_src_address = dhcp_src_address
33 def add_vpp_config(self):
34 self._test.vapi.dhcp_proxy_config(
35 rx_vrf_id=self._rx_vrf_id,
36 server_vrf_id=self._server_vrf_id,
37 dhcp_server=self._dhcp_server,
38 dhcp_src_address=self._dhcp_src_address)
39 self._test.registry.register(self, self._test.logger)
41 def remove_vpp_config(self):
42 self._test.vapi.dhcp_proxy_config(
43 rx_vrf_id=self._rx_vrf_id,
44 server_vrf_id=self._server_vrf_id,
45 dhcp_server=self._dhcp_server,
46 dhcp_src_address=self._dhcp_src_address,
49 def get_vpp_dump(self):
50 dump = self._test.vapi.dhcp_proxy_dump()
52 if entry.rx_vrf_id == self._rx_vrf_id:
55 def query_vpp_config(self):
56 dump = self.get_vpp_dump()
57 return True if dump else False
60 return "dhcp-proxy-%d" % self._rx_vrf_id
63 class VppDHCPClient(VppObject):
71 want_dhcp_event=False,
72 set_broadcast_flag=True,
76 self._sw_if_index = sw_if_index
77 self._hostname = hostname
79 self._want_dhcp_event = want_dhcp_event
80 self._set_broadcast_flag = set_broadcast_flag
89 want_dhcp_event=False,
90 set_broadcast_flag=True,
93 if self.query_vpp_config():
94 raise Exception('Vpp config present')
95 self._sw_if_index = sw_if_index
96 self._hostname = hostname
98 self._want_dhcp_event = want_dhcp_event
99 self._set_broadcast_flag = set_broadcast_flag
103 def add_vpp_config(self):
104 client = {'sw_if_index': self._sw_if_index, 'hostname': self._hostname,
105 'id': self._id, 'want_dhcp_event': self._want_dhcp_event,
106 'set_broadcast_flag': self._set_broadcast_flag,
107 'dscp': self._dscp, 'pid': self._pid}
108 self._test.vapi.dhcp_client_config(client=client)
109 self._test.registry.register(self, self._test.logger)
111 def remove_vpp_config(self):
113 'sw_if_index': self._sw_if_index,
114 'hostname': self._hostname}
115 self._test.vapi.dhcp_client_config(client=client, is_add=0)
117 def get_vpp_dump(self):
118 dump = self._test.vapi.dhcp_client_dump()
120 if entry.client.sw_if_index == self._sw_if_index:
123 def query_vpp_config(self):
124 dump = self.get_vpp_dump()
125 return True if dump else False
128 return "dhcp-client-%s/%d" % (self._hostname, self._sw_if_index)