def __init__(self, addr, via_label=MPLS_LABEL_INVALID, next_hop_id=INVALID_INDEX): self.addr = VppIpAddressUnion(addr) self.via_label = via_label self.obj_id = next_hop_id
class VppFibPathNextHop(object): def __init__(self, addr, via_label=MPLS_LABEL_INVALID, next_hop_id=INVALID_INDEX): self.addr = VppIpAddressUnion(addr) self.via_label = via_label self.obj_id = next_hop_id def encode(self): if self.via_label is not MPLS_LABEL_INVALID: return {'via_label': self.via_label} if self.obj_id is not INVALID_INDEX: return {'obj_id': self.obj_id} else: return {'address': self.addr.encode()} def proto(self): if self.via_label is MPLS_LABEL_INVALID: return address_proto(self.addr) else: return FibPathProto.FIB_PATH_NH_PROTO_MPLS def __eq__(self, other): if not isinstance(other, self.__class__): # try the other instance's __eq__. return NotImplemented return (self.addr == other.addr and self.via_label == other.via_label and self.obj_id == other.obj_id)