summaryrefslogtreecommitdiff
path: root/lib/zclient.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/zclient.c')
-rw-r--r--lib/zclient.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/zclient.c b/lib/zclient.c
index 07c7e5aea8..42d5c33a1b 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -1035,6 +1035,7 @@ int zapi_nexthop_encode(struct stream *s, const struct zapi_nexthop *api_nh,
*/
if (api_nh->label_num > 0) {
stream_putc(s, api_nh->label_num);
+ stream_putc(s, api_nh->label_type);
stream_put(s, &api_nh->labels[0],
api_nh->label_num * sizeof(mpls_label_t));
}
@@ -1397,6 +1398,7 @@ int zapi_nexthop_decode(struct stream *s, struct zapi_nexthop *api_nh,
/* MPLS labels for BGP-LU or Segment Routing */
if (CHECK_FLAG(api_nh->flags, ZAPI_NEXTHOP_FLAG_LABEL)) {
STREAM_GETC(s, api_nh->label_num);
+ STREAM_GETC(s, api_nh->label_type);
if (api_nh->label_num > MPLS_MAX_LABELS) {
flog_err(
EC_LIB_ZAPI_ENCODE,
@@ -1682,7 +1684,8 @@ int zapi_tc_class_encode(uint8_t cmd, struct stream *s, struct tc_class *class)
stream_putq(s, class->u.htb.rate);
stream_putq(s, class->u.htb.ceil);
break;
- default:
+ case TC_QDISC_UNSPEC:
+ case TC_QDISC_NOQUEUE:
/* not implemented */
break;
}
@@ -1730,7 +1733,10 @@ int zapi_tc_filter_encode(uint8_t cmd, struct stream *s,
}
stream_putl(s, filter->u.flower.classid);
break;
- default:
+ case TC_FILTER_UNSPEC:
+ case TC_FILTER_BPF:
+ case TC_FILTER_FLOW:
+ case TC_FILTER_U32:
/* not implemented */
break;
}
@@ -1944,6 +1950,7 @@ int zapi_nexthop_from_nexthop(struct zapi_nexthop *znh,
znh->labels[i] = nh->nh_label->label[i];
znh->label_num = i;
+ znh->label_type = nh->nh_label_type;
SET_FLAG(znh->flags, ZAPI_NEXTHOP_FLAG_LABEL);
}