From b11f3b54c842117e22e2f5cf1561ea34eee8dfcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Mon, 2 Nov 2015 16:50:07 +0200 Subject: zebra: implement per-route mtu handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commits allow overriding MTU using netlink attributes on per-route basis. This is useful for routing protocols that can advertice prefix specific MTUs between routers (e.g. NHRP). Signed-off-by: Timo Teräs --- lib/zclient.c | 4 ++++ lib/zclient.h | 5 +++++ 2 files changed, 9 insertions(+) (limited to 'lib') diff --git a/lib/zclient.c b/lib/zclient.c index bfff9a36..ca6a4c75 100644 --- a/lib/zclient.c +++ b/lib/zclient.c @@ -562,6 +562,8 @@ zapi_ipv4_route (u_char cmd, struct zclient *zclient, struct prefix_ipv4 *p, stream_putc (s, api->distance); if (CHECK_FLAG (api->message, ZAPI_MESSAGE_METRIC)) stream_putl (s, api->metric); + if (CHECK_FLAG (api->message, ZAPI_MESSAGE_MTU)) + stream_putl (s, api->mtu); /* Put length at the first point of the stream. */ stream_putw_at (s, 0, stream_get_endp (s)); @@ -616,6 +618,8 @@ zapi_ipv6_route (u_char cmd, struct zclient *zclient, struct prefix_ipv6 *p, stream_putc (s, api->distance); if (CHECK_FLAG (api->message, ZAPI_MESSAGE_METRIC)) stream_putl (s, api->metric); + if (CHECK_FLAG (api->message, ZAPI_MESSAGE_MTU)) + stream_putl (s, api->mtu); /* Put length at the first point of the stream. */ stream_putw_at (s, 0, stream_get_endp (s)); diff --git a/lib/zclient.h b/lib/zclient.h index aa935c12..a14f5993 100644 --- a/lib/zclient.h +++ b/lib/zclient.h @@ -96,6 +96,7 @@ struct zclient #define ZAPI_MESSAGE_IFINDEX 0x02 #define ZAPI_MESSAGE_DISTANCE 0x04 #define ZAPI_MESSAGE_METRIC 0x08 +#define ZAPI_MESSAGE_MTU 0x10 /* Zserv protocol message header */ struct zserv_header @@ -131,6 +132,8 @@ struct zapi_ipv4 u_int32_t metric; + u_int32_t mtu; + vrf_id_t vrf_id; }; @@ -204,6 +207,8 @@ struct zapi_ipv6 u_int32_t metric; + u_int32_t mtu; + vrf_id_t vrf_id; }; -- cgit v1.2.3