diff options
| author | Renato Westphal <renato@opensourcerouting.org> | 2019-08-08 13:56:39 -0300 |
|---|---|---|
| committer | Renato Westphal <renato@opensourcerouting.org> | 2019-09-06 21:06:11 -0300 |
| commit | e132dea0643499187cc51a332fd6616ee6df387c (patch) | |
| tree | 25c71408ff9d31110e804c5966627fca59a28a83 /lib | |
| parent | bad6b0e72ea5730031b7851ee6c8e422cbb1f270 (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')
| -rw-r--r-- | lib/zclient.c | 6 | ||||
| -rw-r--r-- | lib/zclient.h | 3 |
2 files changed, 6 insertions, 3 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); diff --git a/lib/zclient.h b/lib/zclient.h index e665635a8a..a3238a9161 100644 --- a/lib/zclient.h +++ b/lib/zclient.h @@ -400,7 +400,8 @@ struct zapi_labels { struct prefix prefix; union g_addr nexthop; ifindex_t ifindex; - uint8_t distance; + uint8_t route_type; + unsigned short route_instance; mpls_label_t local_label; mpls_label_t remote_label; }; |
