]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
OSPF: On physical PtP links, skip next-hop resolving
authorSoha Jin <soha@jin.sh>
Thu, 9 Nov 2023 13:33:25 +0000 (14:33 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Thu, 9 Nov 2023 13:33:25 +0000 (14:33 +0100)
Signed-off-by: Soha Jin <soha@jin.sh>
Co-developed-by: Wende Tan <twd2.me@gmail.com>
proto/ospf/rt.c

index 471bb5860d8282878ce046fcc7a7e387d96a58bc..efcd4e17e0fe00da1ff96f7736df998d48244440 100644 (file)
@@ -1796,7 +1796,12 @@ calc_next_hop(struct ospf_area *oa, struct top_hash_entry *en,
     if (ifa->type == OSPF_IT_VLINK)
       return new_nexthop(p, IPA_NONE, NULL, 0);
 
-    /* FIXME: On physical PtP links we may skip next-hop altogether */
+    /*
+     * The type of the ospf_iface is PtP and the iface is a physical PtP link,
+     * so we can simply use the iface, and skip further resolving.
+     */
+    if (ifa->type == OSPF_IT_PTP && !(ifa->iface->flags & IF_MULTIACCESS))
+      return new_nexthop(p, IPA_NONE, ifa->iface, ifa->ecmp_weight);
 
     if (ospf_is_v2(p) || ospf_is_ip6(p))
     {