diff options
| author | David Lamparter <equinox@opensourcerouting.org> | 2021-07-27 10:05:36 +0200 |
|---|---|---|
| committer | Adriano Marto Reis <adrianomarto@gmail.com> | 2023-10-10 08:08:20 +1000 |
| commit | 5c0eed0c85e7dba08df24bd7f0ebc17d9a96a030 (patch) | |
| tree | a56612769a4f015217b237f323ef1ca76a2fe20b /ospf6d/ospf6_message.c | |
| parent | 0c58d8368878f70dd23a566aaf96d3fcccbc5782 (diff) | |
ospf6d: add point-to-multipoint interface mode
This adds the PtMP interface type, which is effectively identical to PtP
except that all the database flooding & updates are unicast.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_message.c')
| -rw-r--r-- | ospf6d/ospf6_message.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c index 244cbe2418..289a1a968c 100644 --- a/ospf6d/ospf6_message.c +++ b/ospf6d/ospf6_message.c @@ -419,7 +419,8 @@ static void ospf6_hello_recv(struct in6_addr *src, struct in6_addr *dst, hello = (struct ospf6_hello *)((caddr_t)oh + sizeof(struct ospf6_header)); - if (oi->state == OSPF6_INTERFACE_POINTTOPOINT + if ((oi->state == OSPF6_INTERFACE_POINTTOPOINT + || oi->state == OSPF6_INTERFACE_POINTTOMULTIPOINT) && oi->p2xp_only_cfg_neigh) { /* NEVER, never, ever, do this on broadcast (or NBMA)! * DR/BDR election requires everyone to talk to everyone else @@ -2326,8 +2327,9 @@ void ospf6_hello_send_addr(struct ospf6_interface *oi, /* Set packet length. */ op->length = length; - if (!addr && oi->state == OSPF6_INTERFACE_POINTTOPOINT - && oi->p2xp_no_multicast_hello) { + if ((oi->state == OSPF6_INTERFACE_POINTTOPOINT + || oi->state == OSPF6_INTERFACE_POINTTOMULTIPOINT) + && !addr && oi->p2xp_no_multicast_hello) { struct listnode *node; struct ospf6_neighbor *on; struct ospf6_packet *opdup; |
