diff options
author | Tuetuopay <tuetuopay@me.com> | 2019-03-05 19:19:28 +0100 |
---|---|---|
committer | Tuetuopay <tuetuopay@me.com> | 2019-03-07 10:42:31 +0100 |
commit | e93a6fbb4f2e144d31ce56da67af3fe308905049 (patch) | |
tree | 427004069b0e6a486c1ddd717df21df7c05c283b /zebra | |
parent | Merge pull request #3855 from donaldsharp/bgp_clist_sa (diff) | |
download | frr-e93a6fbb4f2e144d31ce56da67af3fe308905049.tar.xz frr-e93a6fbb4f2e144d31ce56da67af3fe308905049.zip |
zebra: Treat ifaces withouth IPv4 as unnumbered
The current definition of an unnumberd interface as an interface with a
/32 IPv4 is too restrictive, especially for EVPN symmetric routing since
commit 2b83602b2 "*: Explicitly mark nexthop of EVPN-sourced routes as
onlink".
It removes the bypass check wether the nexthop is an EVPN VTEP, and
relies on the SVI to be unnumberd to bypass the gateway lookup. While
this works great if the SVI has an IP, it might not, and the test falls
flat and EVPN type 5 routes are not installed into the RIB.
Sample interface setup, where vxlan-blue is the L3VNI and br-blue the
SVI:
+----------+
| |
| vrf-blue |
| |
+---+--+---+
| |
+-------+ +-----------+
| |
+----+----+ +---------+---------+
| | | br1 |
| br-blue | | 10.0.0.1/24 |
| | +-+-------+-------+-+
+----+----+ | | |
| | | |
+-----+------+ +-----+--+ +--+---+ +-+----+
| | | | | | | |
| vxlan-blue | | vxlan1 | | eth1 | | eth2 |
| | | | | | | |
+------------+ +--------+ +------+ +------+
For inter-VNI routing, the SVI has no reason to have an IP, but it still
needs type-5 routes from remote VTEPs.
This commit expands the definition of an unnumberd interface to an
interface having a /32 IPv4 or no IPv4 at all.
Signed-off-by: Tuetuopay <tuetuopay@me.com>
Diffstat (limited to 'zebra')
-rw-r--r-- | zebra/connected.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/zebra/connected.c b/zebra/connected.c index c449855f6..128f39755 100644 --- a/zebra/connected.c +++ b/zebra/connected.c @@ -594,5 +594,5 @@ int connected_is_unnumbered(struct interface *ifp) return CHECK_FLAG(connected->flags, ZEBRA_IFA_UNNUMBERED); } - return 0; + return 1; } |