summaryrefslogtreecommitdiff
path: root/lib/prefix.c
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2023-02-20 17:34:26 +0200
committerDonatas Abraitis <donatas@opensourcerouting.org>2023-03-21 13:19:44 +0200
commit8eb09e64d205ccb24223be5de254167ec96f61b6 (patch)
tree8039bb19077055703486c6ec046db5c48d4a8762 /lib/prefix.c
parentc8cba1b88c952517ebe7f2ab2262a6ffb5499c0a (diff)
bgpd: Allow peering via 127.0.0.0/8
There are some specific edge-cases when is a need to run FRR and another FRR and/or another BGP implementation on the same box. Relaxing 127.0.0.0/8 for this case might be reasonable. An example below peering via 127.0.0.0/8 between FRR and GoBGP: ``` % ss -ntlp | grep 179 LISTEN 0 4096 127.0.0.1:179 0.0.0.0:* LISTEN 0 128 127.0.0.2:179 0.0.0.0:* % grep 127.0.0.2 /etc/frr/daemons bgpd_options=" -A 127.0.0.1 -l 127.0.0.2" % grep local /etc/gobgp/config.toml local-address-list = ["127.0.0.1"] donatas-pc# sh ip bgp summary IPv4 Unicast Summary (VRF default): BGP router identifier 192.168.10.17, local AS number 65001 vrf-id 0 BGP table version 0 RIB entries 0, using 0 bytes of memory Peers 1, using 725 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc 127.0.0.1 4 65002 7 7 0 0 0 00:02:02 0 0 N/A Total number of neighbors 1 donatas-pc# ``` Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Diffstat (limited to 'lib/prefix.c')
-rw-r--r--lib/prefix.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/prefix.c b/lib/prefix.c
index a6aae08a6a..b8cad910f4 100644
--- a/lib/prefix.c
+++ b/lib/prefix.c
@@ -1399,7 +1399,7 @@ bool ipv4_unicast_valid(const struct in_addr *addr)
if (IPV4_CLASS_D(ip))
return false;
- if (IPV4_CLASS_E(ip)) {
+ if (IPV4_NET0(ip) || IPV4_NET127(ip) || IPV4_CLASS_E(ip)) {
if (cmd_allow_reserved_ranges_get())
return true;
else