summaryrefslogtreecommitdiff
path: root/lib/zclient.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2019-08-08 13:56:39 -0300
committerRenato Westphal <renato@opensourcerouting.org>2019-09-06 21:06:11 -0300
commite132dea0643499187cc51a332fd6616ee6df387c (patch)
tree25c71408ff9d31110e804c5966627fca59a28a83 /lib/zclient.c
parentbad6b0e72ea5730031b7851ee6c8e422cbb1f270 (diff)
zebra: identify MPLS FTNs by route type and instance
Use the route type and instance instead of the route distance to identify MPLS FTNs. This is a more robust approach since the routing daemons can modify the distance of their announced routes via configuration, which can cause inconsistencies. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'lib/zclient.c')
-rw-r--r--lib/zclient.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/zclient.c b/lib/zclient.c
index 81f0b81f62..3e2c0b24d7 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -2479,7 +2479,8 @@ int zapi_labels_encode(struct stream *s, int cmd, struct zapi_labels *zl)
return -1;
}
stream_putl(s, zl->ifindex);
- stream_putc(s, zl->distance);
+ stream_putc(s, zl->route_type);
+ stream_putw(s, zl->route_instance);
stream_putl(s, zl->local_label);
stream_putl(s, zl->remote_label);
@@ -2528,7 +2529,8 @@ int zapi_labels_decode(struct stream *s, struct zapi_labels *zl)
return -1;
}
STREAM_GETL(s, zl->ifindex);
- STREAM_GETC(s, zl->distance);
+ STREAM_GETC(s, zl->route_type);
+ STREAM_GETW(s, zl->route_instance);
STREAM_GETL(s, zl->local_label);
STREAM_GETL(s, zl->remote_label);