summaryrefslogtreecommitdiff
path: root/proto/ospf/packet.c
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf/packet.c')
-rw-r--r--proto/ospf/packet.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/proto/ospf/packet.c b/proto/ospf/packet.c
index 1f471d79..15242318 100644
--- a/proto/ospf/packet.c
+++ b/proto/ospf/packet.c
@@ -695,6 +695,14 @@ ospf_send_to_adjacent(struct ospf_iface *ifa)
void
ospf_send_to_iface(struct ospf_iface *ifa)
{
+ /*
+ * Send packet to (relevant) neighbors on iface
+ *
+ * On broadcast networks, destination is either AllSPFRouters, or AllDRouters.
+ * On PtP networks, destination is always AllSPFRouters. On non-broadcast
+ * networks, packets are sent as unicast to every adjacent neighbor.
+ */
+
if (ifa->type == OSPF_IT_BCAST)
{
if ((ifa->state == OSPF_IS_DR) || (ifa->state == OSPF_IS_BACKUP))
@@ -702,6 +710,8 @@ ospf_send_to_iface(struct ospf_iface *ifa)
else
ospf_send_to_designated(ifa);
}
+ else if (ifa->type == OSPF_IT_PTP)
+ ospf_send_to_all(ifa);
else /* Non-broadcast */
ospf_send_to_adjacent(ifa);
}