-
Notifications
You must be signed in to change notification settings - Fork 292
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ospf-to-leds: introduce script to visualize ospf state via leds
- Loading branch information
Showing
7 changed files
with
63 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
Visualize OSPF state via LEDs | ||
============================= | ||
|
||
[◀ Go back to main README](../README.md) | ||
|
||
Description | ||
----------- | ||
|
||
Physical interfaces have their state LEDs, software-defined connectivity | ||
does not. This script helps to visualize whether or not an OSPF instance | ||
is running. | ||
|
||
Requirements and installation | ||
----------------------------- | ||
|
||
Just install the script: | ||
|
||
$ScriptInstallUpdate ospf-to-leds; | ||
|
||
... and add a scheduler to run the script periodically: | ||
|
||
/ system scheduler add interval=20s name=ospf-to-leds on-event="/ system script run ospf-to-leds;" start-time=startup; | ||
|
||
Configuration | ||
------------- | ||
|
||
The configuration goes to OSPF instance's comment. To visualize state for | ||
instance `default` via LED `user-led` set this: | ||
|
||
/ routing ospf instance set default comment="ospf-to-leds, leds=user-led"; | ||
|
||
--- | ||
[◀ Go back to main README](../README.md) | ||
[▲ Go back to top](#top) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#!rsc by RouterOS | ||
# RouterOS script: ospf-to-leds | ||
# Copyright (c) 2020 Christian Hesse <mail@eworm.de> | ||
# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md | ||
# | ||
# visualize ospf instance state via leds | ||
# https://git.eworm.de/cgit/routeros-scripts/about/doc/ospf-to-leds.md | ||
|
||
:global LogPrintExit; | ||
:global ParseKeyValueStore; | ||
|
||
:foreach Instance in=[ / routing ospf instance find where comment~"^ospf-to-leds," ] do={ | ||
:local InstanceVal [ / routing ospf instance get $Instance ]; | ||
:local LED ([ $ParseKeyValueStore ($InstanceVal->"comment") ]->"leds"); | ||
:local LEDType [ / system leds get [ find where leds=$LED ] type ]; | ||
|
||
$LogPrintExit debug ("OSPF instance " . $InstanceVal->"name" . " is " . $InstanceVal->"state" . ".") false; | ||
:if ($InstanceVal->"state" = "running" && $LEDType = "off") do={ | ||
/ system leds set type=on [ find where leds=$LED ]; | ||
} | ||
:if ($InstanceVal->"state" = "down" && $LEDType = "on") do={ | ||
/ system leds set type=off [ find where leds=$LED ]; | ||
} | ||
} |