+ def encode_labels(self):
+ lstack = []
+ for l in self.nh_labels:
+ if type(l) == VppMplsLabel:
+ lstack.append(l.encode())
+ else:
+ lstack.append({'label': l,
+ 'ttl': 255})
+ return lstack
+
+ 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,
+ 'sw_if_index': self.nh_itf,
+ 'afi': self.proto,
+ 'is_udp_encap': self.is_udp_encap,
+ 'n_labels': len(self.nh_labels),
+ 'label_stack': self.encode_labels()}
+
+ def __eq__(self, other):
+ return self.nh_addr == other.nh_addr
+