1 from vpp_object import VppObject
2 from socket import inet_pton, inet_ntop, AF_INET, AF_INET6
5 class SRv6MobileNhtype:
6 SRV6_NHTYPE_API_NONE = 0
7 SRV6_NHTYPE_API_IPV4 = 1
8 SRV6_NHTYPE_API_IPV6 = 2
9 SRV6_NHTYPE_API_NON_IP = 3
12 class VppSRv6MobileLocalSID(VppObject):
25 nhtype=SRv6MobileNhtype.SRV6_NHTYPE_API_NONE,
31 self.localsid_prefix = localsid_prefix
32 self.behavior = behavior
33 self.fib_table = fib_table
34 self.local_fib_table = local_fib_table
35 self.drop_in = drop_in
37 self.sr_prefix = sr_prefix
38 self.v4src_addr = v4src_addr
39 self.v4src_position = v4src_position
40 self._configured = False
42 def add_vpp_config(self):
43 self._test.vapi.sr_mobile_localsid_add_del(
44 localsid_prefix=self.localsid_prefix,
45 behavior=self.behavior,
46 fib_table=self.fib_table,
47 local_fib_table=self.local_fib_table,
49 sr_prefix=self.sr_prefix,
50 v4src_addr=self.v4src_addr,
51 v4src_position=self.v4src_position,
54 self._configured = True
56 def remove_vpp_config(self):
57 self._test.vapi.sr_mobile_localsid_add_del(
58 localsid_prefix=self.localsid_prefix,
59 behavior=self.behavior,
60 fib_table=self.fib_table,
61 local_fib_table=self.local_fib_table,
63 sr_prefix=self.sr_prefix,
64 v4src_addr=self.v4src_addr,
65 v4src_position=self.v4src_position,
68 self._configured = False
70 def query_vpp_config(self):
71 return self._configured
74 return "%d;%s,%s" % (self.fib_table, self.localsid_prefix, self.behavior)
77 class VppSRv6MobilePolicy(VppObject):
93 nhtype=SRv6MobileNhtype.SRV6_NHTYPE_API_NONE,
96 self.bsid_addr = bsid_addr
97 self.sr_prefix = sr_prefix
98 self.v6src_prefix = v6src_prefix
99 self.behavior = behavior
100 self.fib_table = fib_table
101 self.local_fib_table = local_fib_table
102 self.drop_in = drop_in
104 self.encap_src = encap_src
105 self._configured = False
107 def add_vpp_config(self):
108 self._test.vapi.sr_mobile_policy_add(
109 bsid_addr=self.bsid_addr,
110 sr_prefix=self.sr_prefix,
111 v6src_prefix=self.v6src_prefix,
112 behavior=self.behavior,
113 fib_table=self.fib_table,
114 local_fib_table=self.local_fib_table,
115 encap_src=self.encap_src,
116 drop_in=self.drop_in,
119 self._configured = True
121 def remove_vpp_config(self):
122 self._test.vapi.sr_policy_del(self.bsid_addr)
123 self._configured = False
125 def query_vpp_config(self):
126 # no API to query SR Policies
127 # use _configured flag for now
128 return self._configured
131 return "%d;%s-><%s>;%d" % (
134 ",".join(self.segments),