From: Chirag Shah Date: Mon, 18 Sep 2017 05:00:37 +0000 (-0700) Subject: ospf6d: OSPFv3 interface bandwidth handling X-Git-Tag: frr-4.0-dev~301^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=refs%2Fpull%2F1197%2Fhead;p=mirror%2Ffrr.git ospf6d: OSPFv3 interface bandwidth handling if bandwidth is not set from Zebra use speed as bandwidth for ospfv3 route cost. Signed-off-by: Chirag Shah --- diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index 8cfed81a81..8e01cb4379 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -117,8 +117,17 @@ static u_int32_t ospf6_interface_get_cost(struct ospf6_interface *oi) u_int32_t cost; u_int32_t bw, refbw; - bw = oi->interface->bandwidth ? oi->interface->bandwidth - : OSPF6_INTERFACE_BANDWIDTH; + /* interface speed and bw can be 0 in some platforms, + * use ospf default bw. If bw is configured then it would + * be used. + */ + if (!oi->interface->bandwidth && oi->interface->speed) { + bw = oi->interface->speed; + } else { + bw = oi->interface->bandwidth ? oi->interface->bandwidth + : OSPF6_INTERFACE_BANDWIDTH; + } + refbw = ospf6 ? ospf6->ref_bandwidth : OSPF6_REFERENCE_BANDWIDTH; /* A specifed ip ospf cost overrides a calculated one. */