From 42dbeb80b537fdd9e4f5660f8007fe2f08202f25 Mon Sep 17 00:00:00 2001 From: Pau Nadeu Rabat Date: Mon, 18 Jan 2021 20:38:51 +0100 Subject: [PATCH 1/8] Add support for Nokia SR OS --- hyperglass/models/commands/__init__.py | 3 ++ hyperglass/models/commands/nokia_sros.py | 50 ++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 hyperglass/models/commands/nokia_sros.py diff --git a/hyperglass/models/commands/__init__.py b/hyperglass/models/commands/__init__.py index 7bf4875..efbf4ef 100644 --- a/hyperglass/models/commands/__init__.py +++ b/hyperglass/models/commands/__init__.py @@ -13,6 +13,7 @@ from .cisco_ios import CiscoIOSCommands from .cisco_nxos import CiscoNXOSCommands from .mikrotik_routeros import MikrotikRouterOS from .mikrotik_switchos import MikrotikSwitchOS +from .nokia_sros import NokiaSROSCommands _NOS_MAP = { "arista": AristaCommands, @@ -25,6 +26,7 @@ _NOS_MAP = { "mikrotik_switchos": MikrotikSwitchOS, "tnsr": TNSRCommands, "vyos": VyosCommands, + "nokia_sros": NokiaSROSCommands, } @@ -41,6 +43,7 @@ class Commands(HyperglassModelExtra): mikrotik_switchos: CommandGroup = MikrotikSwitchOS() tnsr: CommandGroup = TNSRCommands() vyos: CommandGroup = VyosCommands() + nokia_sros: CommandGroup = NokiaSROSCommands() @classmethod def import_params(cls, **input_params): diff --git a/hyperglass/models/commands/nokia_sros.py b/hyperglass/models/commands/nokia_sros.py new file mode 100644 index 0000000..5cc7f4e --- /dev/null +++ b/hyperglass/models/commands/nokia_sros.py @@ -0,0 +1,50 @@ +"""Nokia SR-OS Command Model.""" + +# Third Party +from pydantic import StrictStr + +# Local +from .common import CommandSet, CommandGroup + + +class _IPv4(CommandSet): + """Default commands for ipv4 commands.""" + + bgp_community: StrictStr = "/show router {vrf} bgp routes community {target}" + bgp_aspath: StrictStr = '/show router {vrf} bgp routes aspath-regex {target}' + bgp_route: StrictStr = "/show router {vrf} bgp routes {target} ipv4 hunt" + ping: StrictStr = "/ping {target} router-instance {vrf} source-address {source}" + traceroute: StrictStr = "traceroute: /traceroute {target} router-instance {vrf} source-address {source} wait 2 seconds" + + +class _IPv6(CommandSet): + """Default commands for ipv6 commands.""" + bgp_community: StrictStr = "/show router {vrf} bgp routes community {target}" + bgp_aspath: StrictStr = '/show router {vrf} bgp routes aspath-regex {target}' + bgp_route: StrictStr = "/show router {vrf} bgp routes {target} ipv6 hunt" + ping: StrictStr = "/ping {target} router-instance {vrf} source-address {source}" + traceroute: StrictStr = "traceroute: /traceroute {target} router-instance {vrf} source-address {source} wait 2 seconds" + +class _VPNIPv4(CommandSet): + """Default commands for dual afi commands.""" + bgp_community: StrictStr = "/show router {vrf} bgp routes community {target}" + bgp_aspath: StrictStr = '/show router {vrf} bgp routes aspath-regex {target}' + bgp_route: StrictStr = "/show router {vrf} bgp routes {target} vpn-ipv4 hunt" + ping: StrictStr = "/ping {target} router-instance {vrf} source-address {source}" + traceroute: StrictStr = "traceroute: /traceroute {target} router-instance {vrf} source-address {source} wait 2 seconds" + +class _VPNIPv6(CommandSet): + """Default commands for dual afi commands.""" + bgp_community: StrictStr = "/show router {vrf} bgp routes community {target}" + bgp_aspath: StrictStr = '/show router {vrf} bgp routes aspath-regex {target}' + bgp_route: StrictStr = "/show router {vrf} bgp routes {target} vpn-ipv6 hunt" + ping: StrictStr = "/ping {target} router-instance {vrf} source-address {source}" + traceroute: StrictStr = "traceroute: /traceroute {target} router-instance {vrf} source-address {source} wait 2 seconds" + +class NokiaSROSCommands(CommandGroup): + """Validation model for default nokia_sros commands.""" + + ipv4_default: _IPv4 = _IPv4() + ipv6_default: _IPv6 = _IPv6() + ipv4_vpn: _VPNIPv4 = _VPNIPv4() + ipv6_vpn: _VPNIPv6 = _VPNIPv6() From b41a5324c12b3cc60aa0ddc126a3818dcb76085b Mon Sep 17 00:00:00 2001 From: Pau Nadeu Rabat Date: Mon, 18 Jan 2021 21:26:19 +0100 Subject: [PATCH 2/8] Removing Vrf from Commands for Sros --- hyperglass/models/commands/nokia_sros.py | 40 ++++++++++++------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/hyperglass/models/commands/nokia_sros.py b/hyperglass/models/commands/nokia_sros.py index 5cc7f4e..231e5a0 100644 --- a/hyperglass/models/commands/nokia_sros.py +++ b/hyperglass/models/commands/nokia_sros.py @@ -10,36 +10,36 @@ from .common import CommandSet, CommandGroup class _IPv4(CommandSet): """Default commands for ipv4 commands.""" - bgp_community: StrictStr = "/show router {vrf} bgp routes community {target}" - bgp_aspath: StrictStr = '/show router {vrf} bgp routes aspath-regex {target}' - bgp_route: StrictStr = "/show router {vrf} bgp routes {target} ipv4 hunt" - ping: StrictStr = "/ping {target} router-instance {vrf} source-address {source}" - traceroute: StrictStr = "traceroute: /traceroute {target} router-instance {vrf} source-address {source} wait 2 seconds" + bgp_community: StrictStr = "/show router bgp routes community {target}" + bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' + bgp_route: StrictStr = "/show router bgp routes {target} ipv4 hunt" + ping: StrictStr = "/ping {target} router-instance source-address {source}" + traceroute: StrictStr = "traceroute: /traceroute {target} router-instance source-address {source} wait 2 seconds" class _IPv6(CommandSet): """Default commands for ipv6 commands.""" - bgp_community: StrictStr = "/show router {vrf} bgp routes community {target}" - bgp_aspath: StrictStr = '/show router {vrf} bgp routes aspath-regex {target}' - bgp_route: StrictStr = "/show router {vrf} bgp routes {target} ipv6 hunt" - ping: StrictStr = "/ping {target} router-instance {vrf} source-address {source}" - traceroute: StrictStr = "traceroute: /traceroute {target} router-instance {vrf} source-address {source} wait 2 seconds" + bgp_community: StrictStr = "/show router bgp routes community {target}" + bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' + bgp_route: StrictStr = "/show router bgp routes {target} ipv6 hunt" + ping: StrictStr = "/ping {target} router-instance source-address {source}" + traceroute: StrictStr = "traceroute: /traceroute {target} router-instance source-address {source} wait 2 seconds" class _VPNIPv4(CommandSet): """Default commands for dual afi commands.""" - bgp_community: StrictStr = "/show router {vrf} bgp routes community {target}" - bgp_aspath: StrictStr = '/show router {vrf} bgp routes aspath-regex {target}' - bgp_route: StrictStr = "/show router {vrf} bgp routes {target} vpn-ipv4 hunt" - ping: StrictStr = "/ping {target} router-instance {vrf} source-address {source}" - traceroute: StrictStr = "traceroute: /traceroute {target} router-instance {vrf} source-address {source} wait 2 seconds" + bgp_community: StrictStr = "/show router bgp routes community {target}" + bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' + bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv4 hunt" + ping: StrictStr = "/ping {target} router-instance source-address {source}" + traceroute: StrictStr = "traceroute: /traceroute {target} router-instance source-address {source} wait 2 seconds" class _VPNIPv6(CommandSet): """Default commands for dual afi commands.""" - bgp_community: StrictStr = "/show router {vrf} bgp routes community {target}" - bgp_aspath: StrictStr = '/show router {vrf} bgp routes aspath-regex {target}' - bgp_route: StrictStr = "/show router {vrf} bgp routes {target} vpn-ipv6 hunt" - ping: StrictStr = "/ping {target} router-instance {vrf} source-address {source}" - traceroute: StrictStr = "traceroute: /traceroute {target} router-instance {vrf} source-address {source} wait 2 seconds" + bgp_community: StrictStr = "/show router bgp routes community {target}" + bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' + bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv6 hunt" + ping: StrictStr = "/ping {target} router-instance source-address {source}" + traceroute: StrictStr = "traceroute: /traceroute {target} router-instance source-address {source} wait 2 seconds" class NokiaSROSCommands(CommandGroup): """Validation model for default nokia_sros commands.""" From bae43b6585a803dc6fe18b807ebcc2c99969f3de Mon Sep 17 00:00:00 2001 From: Pau Nadeu Rabat Date: Mon, 18 Jan 2021 21:29:31 +0100 Subject: [PATCH 3/8] Fixed traceroute command --- hyperglass/models/commands/nokia_sros.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/hyperglass/models/commands/nokia_sros.py b/hyperglass/models/commands/nokia_sros.py index 231e5a0..0d9031a 100644 --- a/hyperglass/models/commands/nokia_sros.py +++ b/hyperglass/models/commands/nokia_sros.py @@ -9,12 +9,11 @@ from .common import CommandSet, CommandGroup class _IPv4(CommandSet): """Default commands for ipv4 commands.""" - bgp_community: StrictStr = "/show router bgp routes community {target}" bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} ipv4 hunt" ping: StrictStr = "/ping {target} router-instance source-address {source}" - traceroute: StrictStr = "traceroute: /traceroute {target} router-instance source-address {source} wait 2 seconds" + traceroute: StrictStr = "/traceroute {target} router-instance source-address {source} wait 2 seconds" class _IPv6(CommandSet): @@ -23,7 +22,7 @@ class _IPv6(CommandSet): bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} ipv6 hunt" ping: StrictStr = "/ping {target} router-instance source-address {source}" - traceroute: StrictStr = "traceroute: /traceroute {target} router-instance source-address {source} wait 2 seconds" + traceroute: StrictStr = "/traceroute {target} router-instance source-address {source} wait 2 seconds" class _VPNIPv4(CommandSet): """Default commands for dual afi commands.""" @@ -31,7 +30,7 @@ class _VPNIPv4(CommandSet): bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv4 hunt" ping: StrictStr = "/ping {target} router-instance source-address {source}" - traceroute: StrictStr = "traceroute: /traceroute {target} router-instance source-address {source} wait 2 seconds" + traceroute: StrictStr = "/traceroute {target} router-instance source-address {source} wait 2 seconds" class _VPNIPv6(CommandSet): """Default commands for dual afi commands.""" @@ -39,7 +38,7 @@ class _VPNIPv6(CommandSet): bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv6 hunt" ping: StrictStr = "/ping {target} router-instance source-address {source}" - traceroute: StrictStr = "traceroute: /traceroute {target} router-instance source-address {source} wait 2 seconds" + traceroute: StrictStr = "/traceroute {target} router-instance source-address {source} wait 2 seconds" class NokiaSROSCommands(CommandGroup): """Validation model for default nokia_sros commands.""" From 2497f794058a69922b6f971d87de8ad88890a195 Mon Sep 17 00:00:00 2001 From: Pau Nadeu Rabat Date: Mon, 18 Jan 2021 21:30:57 +0100 Subject: [PATCH 4/8] Fixing commands removing Vrf at all --- hyperglass/models/commands/nokia_sros.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/hyperglass/models/commands/nokia_sros.py b/hyperglass/models/commands/nokia_sros.py index 0d9031a..fed34c7 100644 --- a/hyperglass/models/commands/nokia_sros.py +++ b/hyperglass/models/commands/nokia_sros.py @@ -12,8 +12,8 @@ class _IPv4(CommandSet): bgp_community: StrictStr = "/show router bgp routes community {target}" bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} ipv4 hunt" - ping: StrictStr = "/ping {target} router-instance source-address {source}" - traceroute: StrictStr = "/traceroute {target} router-instance source-address {source} wait 2 seconds" + ping: StrictStr = "/ping {target} source-address {source}" + traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" class _IPv6(CommandSet): @@ -21,24 +21,24 @@ class _IPv6(CommandSet): bgp_community: StrictStr = "/show router bgp routes community {target}" bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} ipv6 hunt" - ping: StrictStr = "/ping {target} router-instance source-address {source}" - traceroute: StrictStr = "/traceroute {target} router-instance source-address {source} wait 2 seconds" + ping: StrictStr = "/ping {target} source-address {source}" + traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" class _VPNIPv4(CommandSet): """Default commands for dual afi commands.""" bgp_community: StrictStr = "/show router bgp routes community {target}" bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv4 hunt" - ping: StrictStr = "/ping {target} router-instance source-address {source}" - traceroute: StrictStr = "/traceroute {target} router-instance source-address {source} wait 2 seconds" + ping: StrictStr = "/ping {target} source-address {source}" + traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" class _VPNIPv6(CommandSet): """Default commands for dual afi commands.""" bgp_community: StrictStr = "/show router bgp routes community {target}" bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv6 hunt" - ping: StrictStr = "/ping {target} router-instance source-address {source}" - traceroute: StrictStr = "/traceroute {target} router-instance source-address {source} wait 2 seconds" + ping: StrictStr = "/ping {target} source-address {source}" + traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" class NokiaSROSCommands(CommandGroup): """Validation model for default nokia_sros commands.""" From 9bed3aa94b58794ba037d97f09f6ac81056a98ca Mon Sep 17 00:00:00 2001 From: Pau Nadeu Rabat Date: Mon, 18 Jan 2021 21:33:07 +0100 Subject: [PATCH 5/8] Readme modified --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 56d7ab8..1d52b8a 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ hyperglass is intended to make implementing a looking glass too easy not to do, - Mikrotik - TNSR - VyOS + - Nokia SR OS - Configurable support for any other [supported platform](https://hyperglass.io/docs/platforms) - Optionally access devices via an SSH proxy/jump server - VRF support From 776c757731122bfbd7ada32a5097776608097a39 Mon Sep 17 00:00:00 2001 From: Pau Nadeu Rabat Date: Mon, 18 Jan 2021 21:42:09 +0100 Subject: [PATCH 6/8] Flake8 validations. --- hyperglass/models/commands/nokia_sros.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/hyperglass/models/commands/nokia_sros.py b/hyperglass/models/commands/nokia_sros.py index fed34c7..0a869d2 100644 --- a/hyperglass/models/commands/nokia_sros.py +++ b/hyperglass/models/commands/nokia_sros.py @@ -13,7 +13,9 @@ class _IPv4(CommandSet): bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} ipv4 hunt" ping: StrictStr = "/ping {target} source-address {source}" - traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" + traceroute: StrictStr = ( + "/traceroute {target} source-address {source} wait 2 seconds" + ) class _IPv6(CommandSet): @@ -22,7 +24,10 @@ class _IPv6(CommandSet): bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} ipv6 hunt" ping: StrictStr = "/ping {target} source-address {source}" - traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" + traceroute: StrictStr = ( + "/traceroute {target} source-address {source} wait 2 seconds" + ) + class _VPNIPv4(CommandSet): """Default commands for dual afi commands.""" @@ -30,7 +35,10 @@ class _VPNIPv4(CommandSet): bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv4 hunt" ping: StrictStr = "/ping {target} source-address {source}" - traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" + traceroute: StrictStr = ( + "/traceroute {target} source-address {source} wait 2 seconds" + ) + class _VPNIPv6(CommandSet): """Default commands for dual afi commands.""" @@ -38,7 +46,10 @@ class _VPNIPv6(CommandSet): bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv6 hunt" ping: StrictStr = "/ping {target} source-address {source}" - traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" + traceroute: StrictStr = ( + "/traceroute {target} source-address {source} wait 2 seconds" + ) + class NokiaSROSCommands(CommandGroup): """Validation model for default nokia_sros commands.""" From ad7db8acebc36ce4ebd15f793773d26f70b3dba8 Mon Sep 17 00:00:00 2001 From: checktheroads Date: Mon, 18 Jan 2021 14:06:03 -0700 Subject: [PATCH 7/8] fix formatting --- README.md | 2 +- hyperglass/models/commands/__init__.py | 6 ++--- hyperglass/models/commands/nokia_sros.py | 28 ++++++++++-------------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 1d52b8a..3cb9ca4 100644 --- a/README.md +++ b/README.md @@ -51,9 +51,9 @@ hyperglass is intended to make implementing a looking glass too easy not to do, - Huawei - Juniper JunOS - Mikrotik + - Nokia SR OS - TNSR - VyOS - - Nokia SR OS - Configurable support for any other [supported platform](https://hyperglass.io/docs/platforms) - Optionally access devices via an SSH proxy/jump server - VRF support diff --git a/hyperglass/models/commands/__init__.py b/hyperglass/models/commands/__init__.py index efbf4ef..9ca62df 100644 --- a/hyperglass/models/commands/__init__.py +++ b/hyperglass/models/commands/__init__.py @@ -11,9 +11,9 @@ from .juniper import JuniperCommands from .cisco_xr import CiscoXRCommands from .cisco_ios import CiscoIOSCommands from .cisco_nxos import CiscoNXOSCommands +from .nokia_sros import NokiaSROSCommands from .mikrotik_routeros import MikrotikRouterOS from .mikrotik_switchos import MikrotikSwitchOS -from .nokia_sros import NokiaSROSCommands _NOS_MAP = { "arista": AristaCommands, @@ -24,9 +24,9 @@ _NOS_MAP = { "juniper": JuniperCommands, "mikrotik_routeros": MikrotikRouterOS, "mikrotik_switchos": MikrotikSwitchOS, + "nokia_sros": NokiaSROSCommands, "tnsr": TNSRCommands, "vyos": VyosCommands, - "nokia_sros": NokiaSROSCommands, } @@ -41,9 +41,9 @@ class Commands(HyperglassModelExtra): huawei: CommandGroup = HuaweiCommands() mikrotik_routeros: CommandGroup = MikrotikRouterOS() mikrotik_switchos: CommandGroup = MikrotikSwitchOS() + nokia_sros: CommandGroup = NokiaSROSCommands() tnsr: CommandGroup = TNSRCommands() vyos: CommandGroup = VyosCommands() - nokia_sros: CommandGroup = NokiaSROSCommands() @classmethod def import_params(cls, **input_params): diff --git a/hyperglass/models/commands/nokia_sros.py b/hyperglass/models/commands/nokia_sros.py index 0a869d2..bc8d5b6 100644 --- a/hyperglass/models/commands/nokia_sros.py +++ b/hyperglass/models/commands/nokia_sros.py @@ -9,46 +9,42 @@ from .common import CommandSet, CommandGroup class _IPv4(CommandSet): """Default commands for ipv4 commands.""" + bgp_community: StrictStr = "/show router bgp routes community {target}" - bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' + bgp_aspath: StrictStr = "/show router bgp routes aspath-regex {target}" bgp_route: StrictStr = "/show router bgp routes {target} ipv4 hunt" ping: StrictStr = "/ping {target} source-address {source}" - traceroute: StrictStr = ( - "/traceroute {target} source-address {source} wait 2 seconds" - ) + traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" class _IPv6(CommandSet): """Default commands for ipv6 commands.""" + bgp_community: StrictStr = "/show router bgp routes community {target}" - bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' + bgp_aspath: StrictStr = "/show router bgp routes aspath-regex {target}" bgp_route: StrictStr = "/show router bgp routes {target} ipv6 hunt" ping: StrictStr = "/ping {target} source-address {source}" - traceroute: StrictStr = ( - "/traceroute {target} source-address {source} wait 2 seconds" - ) + traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" class _VPNIPv4(CommandSet): """Default commands for dual afi commands.""" + bgp_community: StrictStr = "/show router bgp routes community {target}" - bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' + bgp_aspath: StrictStr = "/show router bgp routes aspath-regex {target}" bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv4 hunt" ping: StrictStr = "/ping {target} source-address {source}" - traceroute: StrictStr = ( - "/traceroute {target} source-address {source} wait 2 seconds" - ) + traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" class _VPNIPv6(CommandSet): """Default commands for dual afi commands.""" + bgp_community: StrictStr = "/show router bgp routes community {target}" - bgp_aspath: StrictStr = '/show router bgp routes aspath-regex {target}' + bgp_aspath: StrictStr = "/show router bgp routes aspath-regex {target}" bgp_route: StrictStr = "/show router bgp routes {target} vpn-ipv6 hunt" ping: StrictStr = "/ping {target} source-address {source}" - traceroute: StrictStr = ( - "/traceroute {target} source-address {source} wait 2 seconds" - ) + traceroute: StrictStr = "/traceroute {target} source-address {source} wait 2 seconds" class NokiaSROSCommands(CommandGroup): From 42907011b15b2822e642ac94132682f24114d17d Mon Sep 17 00:00:00 2001 From: checktheroads Date: Mon, 18 Jan 2021 14:06:50 -0700 Subject: [PATCH 8/8] add Nokia SR OS to docs --- docs/docs/introduction.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/docs/introduction.mdx b/docs/docs/introduction.mdx index ce4bf1a..ab253ec 100644 --- a/docs/docs/introduction.mdx +++ b/docs/docs/introduction.mdx @@ -31,6 +31,7 @@ hyperglass was created with the lofty goal of benefiting the internet community - Huawei - Juniper JunOS - Mikrotik + - Nokia SR OS - TNSR - VyOS - Configurable support for any other [supported platform](platforms.mdx)