isisd: reapply patch to fix zebra protocol
Reapply the bits of revision b4e45f6 that pertain to isisd. That is:
git log -n 1 -p b4e45f6 -- isisd
These were dropped in the merge with the Google ISIS code (14d2bbaa).
The commit message for b4e45f6 is:
fix zebra protocol after MP-BGP changes
The previous commits modified both zebra and bgpd for additional
SAFI field, but not any other routing daemon, which led to zebra
daemon crashing with failed assertion.
diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c
index 467122f..2df7462 100644
--- a/isisd/isis_zebra.c
+++ b/isisd/isis_zebra.c
@@ -256,6 +256,8 @@
stream_putc (stream, flags);
/* message */
stream_putc (stream, message);
+ /* SAFI */
+ stream_putw (stream, SAFI_UNICAST);
/* prefix information */
psize = PSIZE (prefix->prefixlen);
stream_putc (stream, prefix->prefixlen);
@@ -304,6 +306,7 @@
api.type = ZEBRA_ROUTE_ISIS;
api.flags = 0;
api.message = 0;
+ api.safi = SAFI_UNICAST;
prefix4.family = AF_INET;
prefix4.prefixlen = prefix->prefixlen;
prefix4.prefix = prefix->u.prefix4;
@@ -333,6 +336,7 @@
api.type = ZEBRA_ROUTE_ISIS;
api.flags = 0;
api.message = 0;
+ api.safi = SAFI_UNICAST;
SET_FLAG (api.message, ZAPI_MESSAGE_NEXTHOP);
SET_FLAG (api.message, ZAPI_MESSAGE_IFINDEX);
SET_FLAG (api.message, ZAPI_MESSAGE_METRIC);
@@ -417,6 +421,7 @@
api.type = ZEBRA_ROUTE_ISIS;
api.flags = 0;
api.message = 0;
+ api.safi = SAFI_UNICAST;
SET_FLAG (api.message, ZAPI_MESSAGE_NEXTHOP);
SET_FLAG (api.message, ZAPI_MESSAGE_IFINDEX);
api.nexthop_num = listcount (route_info->nexthops6);