summaryrefslogtreecommitdiff
path: root/zebra/rib.h
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2015-11-02 16:50:07 +0200
committerDonald Sharp <sharpd@cumulusnetworks.com>2016-08-21 13:11:42 -0400
commitc50ca33acf29bb269e8f26be19a8ccd06ab41d3e (patch)
tree82c05cf8767f6b9096a58d57f5fed9bf8c82e8ef /zebra/rib.h
parent2b50b6031ceb1c960337dd263c91095c4fd27696 (diff)
zebra: implement per-route mtu handling
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 <timo.teras@iki.fi> (cherry picked from commit b11f3b54c842117e22e2f5cf1561ea34eee8dfcc)
Diffstat (limited to 'zebra/rib.h')
-rw-r--r--zebra/rib.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/zebra/rib.h b/zebra/rib.h
index a2109d8c17..095b9c6f8f 100644
--- a/zebra/rib.h
+++ b/zebra/rib.h
@@ -64,6 +64,10 @@ struct rib
/* Metric */
u_int32_t metric;
+ /* MTU */
+ u_int32_t mtu;
+ u_int32_t nexthop_mtu;
+
/* Distance. */
u_char distance;
@@ -376,7 +380,7 @@ extern int zebra_check_addr (struct prefix *p);
extern int rib_add_ipv4 (int type, u_short instance, int flags, struct prefix_ipv4 *p,
struct in_addr *gate, struct in_addr *src,
ifindex_t ifindex, vrf_id_t vrf_id, u_int32_t table_id,
- u_int32_t, u_char, safi_t);
+ u_int32_t, u_int32_t, u_char, safi_t);
extern int rib_add_ipv4_multipath (struct prefix_ipv4 *, struct rib *, safi_t);
@@ -417,7 +421,8 @@ static_delete_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, ifindex
extern int
rib_add_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p,
struct in6_addr *gate, ifindex_t ifindex, vrf_id_t vrf_id,
- u_int32_t table_id, u_int32_t metric, u_char distance, safi_t safi);
+ u_int32_t table_id, u_int32_t metric, u_int32_t mtu,
+ u_char distance, safi_t safi);
extern int
rib_delete_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p,