diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2010-12-24 18:08:07 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2010-12-24 18:08:07 +0100 |
commit | 919f5411c48f509a49400a1293e670f5d5d2bcf1 (patch) | |
tree | 0701f270439c2e71a017c75f3095367db724ca8e /proto/ospf/lsupd.c | |
parent | 39847cda73d8e8536300b74d90d01b6e2f233ef7 (diff) |
Implements Point-to-MultiPoint interface type for OSPF.
Diffstat (limited to 'proto/ospf/lsupd.c')
-rw-r--r-- | proto/ospf/lsupd.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c index fb757d08..06b62ae2 100644 --- a/proto/ospf/lsupd.c +++ b/proto/ospf/lsupd.c @@ -304,6 +304,13 @@ ospf_lsupd_flood(struct proto_ospf *po, switch (ifa->type) { + case OSPF_IT_BCAST: + if ((ifa->state == OSPF_IS_BACKUP) || (ifa->state == OSPF_IS_DR)) + ospf_send_to(ifa, AllSPFRouters); + else + ospf_send_to(ifa, AllDRouters); + break; + case OSPF_IT_NBMA: if ((ifa->state == OSPF_IS_BACKUP) || (ifa->state == OSPF_IS_DR)) ospf_send_to_agt(ifa, NEIGHBOR_EXCHANGE); @@ -311,16 +318,20 @@ ospf_lsupd_flood(struct proto_ospf *po, ospf_send_to_bdr(ifa); break; + case OSPF_IT_PTP: + ospf_send_to(ifa, AllSPFRouters); + break; + + case OSPF_IT_PTMP: + ospf_send_to_agt(ifa, NEIGHBOR_EXCHANGE); + break; + case OSPF_IT_VLINK: ospf_send_to(ifa, ifa->vip); break; default: - if ((ifa->state == OSPF_IS_BACKUP) || (ifa->state == OSPF_IS_DR) || - (ifa->type == OSPF_IT_PTP)) - ospf_send_to(ifa, AllSPFRouters); - else - ospf_send_to(ifa, AllDRouters); + bug("Bug in ospf_lsupd_flood()"); } } } |