summaryrefslogtreecommitdiffstats
path: root/eigrpd/eigrp_network.c
diff options
context:
space:
mode:
authorDon Slice <dslice@cumulusnetworks.com>2017-06-28 20:53:27 +0200
committerDon Slice <dslice@cumulusnetworks.com>2017-06-28 20:57:36 +0200
commit3bec29ac951ab9b3a49fa874b9862bb5404088c1 (patch)
treefdf74e2afa219a781c290c3c52efe6c1c97d36d5 /eigrpd/eigrp_network.c
parentMerge pull request #753 from dslicenc/cm16876-ospfv6-mtu (diff)
downloadfrr-3bec29ac951ab9b3a49fa874b9862bb5404088c1.tar.xz
frr-3bec29ac951ab9b3a49fa874b9862bb5404088c1.zip
lib/ospf/eigrp: enable ospf and eigrp to use more specific network statements
Issue reported that a configuration commonly used on other routing implementations fails in frr. If under ospf, "network 172.16.1.1/32 area 0" or under eigrp, "network 172.16.1.1/32" is entered, the appropriate interfaces are not included in the routing protocol. This was because the code was calling prefix_match, which did not match if the network statement had a longer mask than the interface being matched. This fix takes away that restriction by creating a "lib/prefix_match_network_statement" function which doesn't care about the mask of the interface. Manual testing shows both ospf and eigrp now can be defined with more specific network statements. Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Diffstat (limited to 'eigrpd/eigrp_network.c')
-rw-r--r--eigrpd/eigrp_network.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/eigrpd/eigrp_network.c b/eigrpd/eigrp_network.c
index cfed11a9e..c4e0b8435 100644
--- a/eigrpd/eigrp_network.c
+++ b/eigrpd/eigrp_network.c
@@ -262,7 +262,7 @@ static int
eigrp_network_match_iface(const struct connected *co, const struct prefix *net)
{
/* new approach: more elegant and conceptually clean */
- return prefix_match(net, CONNECTED_PREFIX (co));
+ return prefix_match_network_statement(net, CONNECTED_PREFIX (co));
}
static void