summaryrefslogtreecommitdiffstats
path: root/test/vpp_bond_interface.py
blob: 60c1ac1557b7bb81777ee3388a976da0334cdfaf (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
from vpp_object import VppObject
from vpp_interface import VppInterface


class VppBondInterface(VppInterface):
    """VPP bond interface."""

    def __init__(self, test, mode, lb=0, numa_only=0, enable_gso=0,
                 use_custom_mac=0, mac_address='', id=0xFFFFFFFF):

        """ Create VPP Bond interface """
        super(VppBondInterface, self).__init__(test)
        self.mode = mode
        self.lb = lb
        self.numa_only = numa_only
        self.enable_gso = enable_gso
        self.use_custom_mac = use_custom_mac
        self.mac_address = mac_address
        self.id = id

    def add_vpp_config(self):
        r = self.test.vapi.bond_create2(self.mode,
                                        self.lb,
                                        self.numa_only,
                                        self.enable_gso,
                                        self.use_custom_mac,
                                        self.mac_address,
                                        self.id)
        self.set_sw_if_index(r.sw_if_index)

    def remove_vpp_config(self):
        self.test.vapi.bond_delete(self.sw_if_index)

    def add_member_vpp_bond_interface(self,
                                      sw_if_index,
                                      is_passive=0,
                                      is_long_timeout=0):
        self.test.vapi.bond_add_member(sw_if_index,
                                       self.sw_if_index,
                                       is_passive,
                                       is_long_timeout)

    def detach_vpp_bond_interface(self,
                                  sw_if_index):
        self.test.vapi.bond_detach_member(sw_if_index)

    def is_interface_config_in_dump(self, dump):
        for i in dump:
            if i.sw_if_index == self.sw_if_index:
                return True
        else:
            return False
class="n">lex_tables; uword *lex_tables_by_name; /* Vector of token strings. */ char **lex_token_names; /* Hash mapping c string name to token index. */ uword *lex_tokens_by_name; /* Hash mapping c string keyword name to token index. */ uword *lex_keywords; vlib_lex_token_t *pushback_vector; i32 pushback_sp; u32 current_table_index; uword current_token_value; uword current_number_base; /* Input string we are lex-ing. */ u8 *input_vector; /* Current index into input vector. */ u32 current_index; /* Re-used vector for forming token strings and hashing them. */ u8 *token_buffer; } vlib_lex_main_t; extern vlib_lex_main_t vlib_lex_main; always_inline void vlib_lex_cleanup_token (vlib_lex_token_t * t) { if (t->token == VLIB_LEX_word) { u8 *tv = t->value.as_pointer; vec_free (tv); } } u16 vlib_lex_add_table (char *name); void vlib_lex_get_token (vlib_lex_main_t * lm, vlib_lex_token_t * result); u16 vlib_lex_add_token (vlib_lex_main_t * lm, char *token_name); void vlib_lex_set_action_range (u32 table_index, u8 lo, u8 hi, u16 action, u16 token, u32 next_table_index); void vlib_lex_reset (vlib_lex_main_t * lm, u8 * input_vector); format_function_t format_vlib_lex_token; #endif /* included_vlib_lex_h */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */