Skip to content

Commit 7e8a0d7

Browse files
authored
Merge pull request FRRouting#20424 from opensourcerouting/fix/doc_allow_reserved_ranges
doc: Exclude 240.0.0.0/4 from allow-reserved-ranges
2 parents 9d85eac + 98a3d04 commit 7e8a0d7

File tree

5 files changed

+93
-2
lines changed

5 files changed

+93
-2
lines changed

doc/user/basic.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,15 +313,19 @@ Basic Config Commands
313313

314314
.. clicmd:: allow-reserved-ranges
315315

316-
Allow using reserved ranges (e.g. 127.0.0.0/8, 0.0.0.0/8, 240.0.0.0/4).
316+
Allow using reserved ranges (e.g. 127.0.0.0/8, 0.0.0.0/8).
317317

318318
For example, this is necessary in case of multiple FRR instances
319319
(or FRR + any other daemon) peering via loopback interfaces
320320
running on the same router.
321321

322-
Another example is when you need to annouce a reserved range via
322+
Another example is when you need to announce a reserved range via
323323
RIP protocol.
324324

325+
``240.0.0.0/4`` is a reserved range too, but it's allowed by default,
326+
because it's already widely used in private networks
327+
(especially in data centers).
328+
325329
Default: off.
326330

327331
Line VTY Commands

tests/topotests/ripng_flush_time/__init__.py

Whitespace-only changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
!
2+
int r1-eth0
3+
ipv6 address 2001:db8::1/64
4+
!
5+
router ripng
6+
network 2001:db8::/64
7+
timers basic 5 15 30
8+
exit
9+
!
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
!
2+
int lo
3+
ipv6 address 2001:db8:2::1/64
4+
!
5+
int r2-eth0
6+
ipv6 address 2001:db8::2/64
7+
!
8+
router ripng
9+
redistribute connected
10+
network 2001:db8::/64
11+
network 2001:db8:2::1/64
12+
timers basic 5 15 30
13+
exit
14+
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#!/usr/bin/env python
2+
# SPDX-License-Identifier: ISC
3+
4+
# Copyright (c) 2026 by
5+
# Donatas Abraitis <donatas@opensourcerouting.org>
6+
#
7+
8+
import os
9+
import sys
10+
import json
11+
import pytest
12+
import functools
13+
14+
CWD = os.path.dirname(os.path.realpath(__file__))
15+
sys.path.append(os.path.join(CWD, "../"))
16+
17+
# pylint: disable=C0413
18+
from lib import topotest
19+
from lib.topogen import Topogen, get_topogen
20+
21+
pytestmark = [pytest.mark.ripngd]
22+
23+
24+
def setup_module(mod):
25+
topodef = {"s1": ("r1", "r2")}
26+
tgen = Topogen(topodef, mod.__name__)
27+
tgen.start_topology()
28+
29+
router_list = tgen.routers()
30+
31+
for _, (rname, router) in enumerate(router_list.items(), 1):
32+
router.load_frr_config(os.path.join(CWD, "{}/frr.conf".format(rname)))
33+
34+
tgen.start_router()
35+
36+
37+
def teardown_module():
38+
tgen = get_topogen()
39+
tgen.stop_topology()
40+
41+
42+
def test_ripng_flush_time():
43+
tgen = get_topogen()
44+
45+
if tgen.routers_have_failure():
46+
pytest.skip(tgen.errors)
47+
48+
r1 = tgen.gears["r1"]
49+
r2 = tgen.gears["r2"]
50+
51+
def _show_routes(nh_num):
52+
output = json.loads(r1.vtysh_cmd("show ipv6 route ripng json"))
53+
expected = {
54+
}
55+
return topotest.json_cmp(output, expected)
56+
57+
test_func = functools.partial(_show_routes, 2)
58+
_, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
59+
assert result is None, "Got routes, but metric is not set as expected"
60+
61+
62+
if __name__ == "__main__":
63+
args = ["-s"] + sys.argv[1:]
64+
sys.exit(pytest.main(args))

0 commit comments

Comments
 (0)