mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-12 09:10:16 +00:00
2004-11-04 Paul Jakma <paul@dishone.st>
* ospfd.c: (ospf_network_match_iface) revert to previous network statement match behaviour.
This commit is contained in:
parent
49ff6d9d7a
commit
f3ae74cdf0
@ -1,3 +1,8 @@
|
||||
2004-11-04 Paul Jakma <paul@dishone.st>
|
||||
|
||||
* ospfd.c: (ospf_network_match_iface) revert to previous network
|
||||
statement match behaviour.
|
||||
|
||||
2004-11-02 Paul Jakma <paul@dishone.st>
|
||||
|
||||
* ospf_packet.c: (ospf_write_frags) remove iov arg, msg already points
|
||||
|
@ -686,17 +686,31 @@ ospf_network_match_iface(struct connected *co, struct prefix *net)
|
||||
* PtP special case: network specified == iface peer addr -> ospf
|
||||
*/
|
||||
|
||||
/* For PtP, match if peer address matches network address exactly
|
||||
* in situations where the peer address is available and the prefix
|
||||
* length is 32 (i.e. a dedicated subnet has not been assigned).
|
||||
* This is not a test for falling within the prefix. This
|
||||
/* For PtP, match if peer address matches network address exactly.
|
||||
* This can be addr/32 or addr/p for p < 32, but the addr must match
|
||||
* exactly; this is not a test for falling within the prefix. This
|
||||
* test is solely for compatibility with zebra.
|
||||
*
|
||||
* If not PtP, accept if the address is within the prefix.
|
||||
*/
|
||||
return CONNECTED_POINTOPOINT_HOST(co) ?
|
||||
IPV4_ADDR_SAME ( &(co->destination->u.prefix4), &(net->u.prefix4)) :
|
||||
prefix_match (net, co->address);
|
||||
if (if_is_pointopoint (co->ifp) && co->destination &&
|
||||
IPV4_ADDR_SAME ( &(co->destination->u.prefix4), &(net->u.prefix4)))
|
||||
return 1;
|
||||
|
||||
#if 0
|
||||
/* Decline to accept PtP if dst address does not match the
|
||||
* prefix. (ifdefed out because this is a workaround, not the
|
||||
* desired behavior.) */
|
||||
if (if_is_pointopoint (co->ifp) &&
|
||||
! prefix_match (net, co->destination))
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
/* If the address is within the prefix, accept. Note that this
|
||||
* applies to PtP as well as other types.
|
||||
*/
|
||||
if (prefix_match (net, co->address))
|
||||
return 1;
|
||||
|
||||
return 0; /* no match */
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user