object abstractions for representing IP routes in VPP
"""
-from vpp_object import *
+from vpp_object import VppObject
from socket import inet_pton, inet_ntop, AF_INET, AF_INET6
-from vpp_ip import *
+from vpp_ip import DpoProto, VppIpPrefix
# from vnet/vnet/mpls/mpls_types.h
MPLS_IETF_MAX_LABEL = 0xfffff
is_dvr=0,
next_hop_id=0xffffffff,
proto=DpoProto.DPO_PROTO_IP4):
+ self.proto = proto
self.nh_itf = nh_sw_if_index
self.nh_table_id = nh_table_id
self.nh_via_label = nh_via_label
self.nh_labels = labels
self.weight = 1
self.rpf_id = rpf_id
- self.proto = proto
if self.proto is DpoProto.DPO_PROTO_IP6:
self.nh_addr = inet_pton(AF_INET6, nh_addr)
elif self.proto is DpoProto.DPO_PROTO_IP4:
def encode(self):
return {'next_hop': self.nh_addr,
'weight': 1,
- 'afi': 0,
'preference': 0,
'table_id': self.nh_table_id,
'next_hop_id': self.next_hop_id,
self.is_prohibit = is_prohibit
def add_vpp_config(self):
- if self.is_local or self.is_unreach or \
- self.is_prohibit or self.is_drop:
+ if self.is_unreach or self.is_prohibit or self.is_drop:
r = self._test.vapi.ip_add_del_route(
self.dest_addr,
self.dest_addr_len,
next_hop_id=path.next_hop_id,
is_ipv6=self.is_ip6,
is_dvr=path.is_dvr,
+ is_local=self.is_local,
is_resolve_host=path.is_resolve_host,
is_resolve_attached=path.is_resolve_attached,
is_source_lookup=path.is_source_lookup,
self._test.registry.register(self, self._test.logger)
def remove_vpp_config(self):
- if self.is_local or self.is_unreach or \
- self.is_prohibit or self.is_drop:
+ if self.is_unreach or self.is_prohibit or self.is_drop:
self._test.vapi.ip_add_del_route(
self.dest_addr,
self.dest_addr_len,