diff options
author | Don Slice <dslice@cumulusnetworks.com> | 2017-06-28 20:53:27 +0200 |
---|---|---|
committer | Don Slice <dslice@cumulusnetworks.com> | 2017-06-28 20:57:36 +0200 |
commit | 3bec29ac951ab9b3a49fa874b9862bb5404088c1 (patch) | |
tree | fdf74e2afa219a781c290c3c52efe6c1c97d36d5 /eigrpd/eigrp_network.c | |
parent | Merge pull request #753 from dslicenc/cm16876-ospfv6-mtu (diff) | |
download | frr-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.c | 2 |
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 |