bonding: add bond_create2 API to include gso option
[vpp.git] / test / vpp_bond_interface.py
1 from vpp_object import VppObject
2 from vpp_interface import VppInterface
3
4
5 class VppBondInterface(VppInterface):
6     """VPP bond interface."""
7
8     def __init__(self, test, mode, lb=0, numa_only=0, enable_gso=0,
9                  use_custom_mac=0, mac_address='', id=0xFFFFFFFF):
10
11         """ Create VPP Bond interface """
12         super(VppBondInterface, self).__init__(test)
13         self.mode = mode
14         self.lb = lb
15         self.numa_only = numa_only
16         self.enable_gso = enable_gso
17         self.use_custom_mac = use_custom_mac
18         self.mac_address = mac_address
19         self.id = id
20
21     def add_vpp_config(self):
22         r = self.test.vapi.bond_create2(self.mode,
23                                         self.lb,
24                                         self.numa_only,
25                                         self.enable_gso,
26                                         self.use_custom_mac,
27                                         self.mac_address,
28                                         self.id)
29         self.set_sw_if_index(r.sw_if_index)
30
31     def remove_vpp_config(self):
32         self.test.vapi.bond_delete(self.sw_if_index)
33
34     def add_member_vpp_bond_interface(self,
35                                       sw_if_index,
36                                       is_passive=0,
37                                       is_long_timeout=0):
38         self.test.vapi.bond_add_member(sw_if_index,
39                                        self.sw_if_index,
40                                        is_passive,
41                                        is_long_timeout)
42
43     def detach_vpp_bond_interface(self,
44                                   sw_if_index):
45         self.test.vapi.bond_detach_member(sw_if_index)
46
47     def is_interface_config_in_dump(self, dump):
48         for i in dump:
49             if i.sw_if_index == self.sw_if_index:
50                 return True
51         else:
52             return False