diff options
| author | Don Slice <dslice@cumulusnetworks.com> | 2017-06-28 14:53:27 -0400 | 
|---|---|---|
| committer | Don Slice <dslice@cumulusnetworks.com> | 2017-06-28 14:57:36 -0400 | 
| commit | 3bec29ac951ab9b3a49fa874b9862bb5404088c1 (patch) | |
| tree | fdf74e2afa219a781c290c3c52efe6c1c97d36d5 /eigrpd/eigrp_network.c | |
| parent | 3d07d27345fe5832045632d292ac6cdfabbc75e0 (diff) | |
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 cfed11a9eb..c4e0b8435c 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  | 
