mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 13:37:17 +02:00
Merge 58f9bbb1c7
into 3dd4d417be
This commit is contained in:
commit
0e978e08be
|
@ -744,18 +744,20 @@ void cli_show_ip_rip_v2_broadcast(struct vty *vty, const struct lyd_node *dnode,
|
|||
*/
|
||||
DEFPY_YANG (ip_rip_receive_version,
|
||||
ip_rip_receive_version_cmd,
|
||||
"ip rip receive version <{1$v1|2$v2}|none>",
|
||||
"ip rip receive version <1$v1|2$v2|1 2$v3|none>",
|
||||
IP_STR
|
||||
"Routing Information Protocol\n"
|
||||
"Advertisement reception\n"
|
||||
"Version control\n"
|
||||
"RIP version 1\n"
|
||||
"RIP version 2\n"
|
||||
"RIP version 1&2\n"
|
||||
"RIP version 1&2\n"
|
||||
"None\n")
|
||||
{
|
||||
const char *value;
|
||||
|
||||
if (v1 && v2)
|
||||
if (v3)
|
||||
value = "both";
|
||||
else if (v1)
|
||||
value = "1";
|
||||
|
@ -814,18 +816,20 @@ void cli_show_ip_rip_receive_version(struct vty *vty,
|
|||
*/
|
||||
DEFPY_YANG (ip_rip_send_version,
|
||||
ip_rip_send_version_cmd,
|
||||
"ip rip send version <{1$v1|2$v2}|none>",
|
||||
"ip rip send version <1$v1|2$v2|1 2$v3|none>",
|
||||
IP_STR
|
||||
"Routing Information Protocol\n"
|
||||
"Advertisement transmission\n"
|
||||
"Version control\n"
|
||||
"RIP version 1\n"
|
||||
"RIP version 2\n"
|
||||
"RIP version 1&2\n"
|
||||
"RIP version 1&2\n"
|
||||
"None\n")
|
||||
{
|
||||
const char *value;
|
||||
|
||||
if (v1 && v2)
|
||||
if (v3)
|
||||
value = "both";
|
||||
else if (v1)
|
||||
value = "1";
|
||||
|
|
0
tests/topotests/rip_send_recv_version/__init__.py
Normal file
0
tests/topotests/rip_send_recv_version/__init__.py
Normal file
17
tests/topotests/rip_send_recv_version/r1/frr.conf
Normal file
17
tests/topotests/rip_send_recv_version/r1/frr.conf
Normal file
|
@ -0,0 +1,17 @@
|
|||
!
|
||||
int r1-eth0
|
||||
ip address 192.168.1.1/24
|
||||
ip rip send version 2 1
|
||||
ip rip receive version 2 1
|
||||
!
|
||||
|
||||
!
|
||||
int r1-eth1
|
||||
ip address 192.168.1.2/24
|
||||
ip rip send version 1 2
|
||||
ip rip receive version 1 2
|
||||
!
|
||||
router rip
|
||||
network r1-eth0
|
||||
network r1-eth1
|
||||
exit
|
|
@ -0,0 +1,79 @@
|
|||
#!/usr/bin/env python
|
||||
# SPDX-License-Identifier: ISC
|
||||
|
||||
# Copyright (c) 2025 by
|
||||
# Bing Shui <bingshui@smail.nju.edu.cn>
|
||||
#
|
||||
|
||||
"""
|
||||
Test if RIP `ip rip send version` and `ip rip receive version`
|
||||
works as expected.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import pytest
|
||||
import functools
|
||||
import re
|
||||
|
||||
CWD = os.path.dirname(os.path.realpath(__file__))
|
||||
sys.path.append(os.path.join(CWD, "../"))
|
||||
|
||||
# pylint: disable=C0413
|
||||
from lib import topotest
|
||||
from lib.topogen import Topogen, get_topogen
|
||||
from lib.common_config import step
|
||||
|
||||
pytestmark = [pytest.mark.ripd]
|
||||
|
||||
|
||||
def setup_module(mod):
|
||||
topodef = {"s1": ("r1")}
|
||||
tgen = Topogen(topodef, mod.__name__)
|
||||
tgen.start_topology()
|
||||
|
||||
router_list = tgen.routers()
|
||||
|
||||
for _, (rname, router) in enumerate(router_list.items(), 1):
|
||||
router.load_frr_config(os.path.join(CWD, "{}/frr.conf".format(rname)))
|
||||
|
||||
tgen.start_router()
|
||||
|
||||
|
||||
def teardown_module():
|
||||
tgen = get_topogen()
|
||||
tgen.stop_topology()
|
||||
|
||||
|
||||
def get_conf_of_interface(i_name, text):
|
||||
pattern = f'!\ninterface {i_name}(.*?)!'
|
||||
|
||||
matches = re.findall(pattern, text, re.DOTALL)
|
||||
|
||||
for match in matches:
|
||||
return match.strip()
|
||||
|
||||
return None
|
||||
|
||||
def test_rip_version():
|
||||
tgen = get_topogen()
|
||||
|
||||
if tgen.routers_have_failure():
|
||||
pytest.skip(tgen.errors)
|
||||
|
||||
r1 = tgen.gears["r1"]
|
||||
|
||||
st = r1.vtysh_cmd("show running-config")
|
||||
r1_eth0 = get_conf_of_interface("r1-eth0", st)
|
||||
assert r1_eth0 != None
|
||||
assert "ip rip send version 1 2" not in r1_eth0
|
||||
assert "ip rip receive version 1 2" not in r1_eth0
|
||||
r1_eth1 = get_conf_of_interface("r1-eth1", st)
|
||||
assert r1_eth1 != None
|
||||
assert "ip rip send version 1 2" in r1_eth1
|
||||
assert "ip rip receive version 1 2" in r1_eth1
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = ["-s"] + sys.argv[1:]
|
||||
sys.exit(pytest.main(args))
|
Loading…
Reference in a new issue