summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_interface.c
diff options
context:
space:
mode:
authorChirag Shah <chirag@cumulusnetworks.com>2017-09-18 07:00:37 +0200
committerChirag Shah <chirag@cumulusnetworks.com>2017-09-19 00:59:38 +0200
commit27ae9bcd9d7cc3826e010c80d75aea52b00521d0 (patch)
tree630f6f4acf98f6b4c210b796f3f9c1e4f2e5fc75 /ospf6d/ospf6_interface.c
parentMerge pull request #1195 from qlyoung/vtysh-warn-not-running (diff)
downloadfrr-27ae9bcd9d7cc3826e010c80d75aea52b00521d0.tar.xz
frr-27ae9bcd9d7cc3826e010c80d75aea52b00521d0.zip
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 <chirag@cumulusnetworks.com>
Diffstat (limited to 'ospf6d/ospf6_interface.c')
-rw-r--r--ospf6d/ospf6_interface.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 8cfed81a8..8e01cb437 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. */