summaryrefslogtreecommitdiff
path: root/src/op_mode/neighbor.py
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2022-06-15 09:48:20 -0400
committerDaniil Baturin <daniil@vyos.io>2022-06-15 09:48:20 -0400
commitdb5952f2bb09a3997b3bef1904497a068fff59ce (patch)
tree112b91821638578950ad5e90826ea65fd5b6ef5d /src/op_mode/neighbor.py
parentaeb9491a7ac33314c78dce1157cecc4d6645acb6 (diff)
downloadvyos-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-xsrc/op_mode/neighbor.py19
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)