diff options
author | Daniil Baturin <daniil@vyos.io> | 2022-06-15 09:48:20 -0400 |
---|---|---|
committer | Daniil Baturin <daniil@vyos.io> | 2022-06-15 09:48:20 -0400 |
commit | db5952f2bb09a3997b3bef1904497a068fff59ce (patch) | |
tree | 112b91821638578950ad5e90826ea65fd5b6ef5d /src/op_mode/neighbor.py | |
parent | aeb9491a7ac33314c78dce1157cecc4d6645acb6 (diff) | |
download | vyos-1x-db5952f2bb09a3997b3bef1904497a068fff59ce.tar.gz vyos-1x-db5952f2bb09a3997b3bef1904497a068fff59ce.zip |
T2719: add reset command to the neighbor script
Diffstat (limited to 'src/op_mode/neighbor.py')
-rwxr-xr-x | src/op_mode/neighbor.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/op_mode/neighbor.py b/src/op_mode/neighbor.py index 1f686843d..13ea46b8f 100755 --- a/src/op_mode/neighbor.py +++ b/src/op_mode/neighbor.py @@ -92,12 +92,25 @@ def show(raw: bool, family: str, interface: typing.Optional[str], state: typing. else: return format_neighbors(data, interface) +def reset(family: str, interface: typing.Optional[str], address: typing.Optional[str]): + from vyos.util import run + + if address and interface: + raise ValueError("interface and address parameters are mutually exclusive") + elif address: + run(f"""ip --family {family} neighbor flush to {address}""") + elif interface: + run(f"""ip --family {family} neighbor flush dev {interface}""") + else: + # Flush an entire neighbor table + run(f"""ip --family {family} neighbor flush""") -if __name__ == '__main__': - from argparse import ArgumentParser +if __name__ == '__main__': try: - print(opmode.run(sys.modules[__name__])) + res = opmode.run(sys.modules[__name__]) + if res: + print(res) except ValueError as e: print(e) sys.exit(1) |