View Issue Details

IDProjectCategoryView StatusLast Update
1985RackTables802.1Q VLANspublic2020-09-24 20:42
Reportercodename Assigned Toinfrastation  
PrioritynormalSeverityminorReproducibilityhave not tried
Status assignedResolutionopen 
Summary1985: Add new switch os to 802.1q sync
DescriptionWas wanting to add a new os to this.
Would be for the netgears telnet interface, as it is what i am deplying.
they have pretty ios like interface.
just would like a direction to be pointed in,
or if it is just not worth it.

TagsNo tags attached.

Activities

infrastation

infrastation

2020-08-29 16:48

administrator   ~0004155

Generic low-level code to communicate with the device and generic high-level code to handle application data in PHP already exist, you would need to declare a new "breed" and to add some new breed-specific functions between these levels to translate requests into CLI commands and to parse data from CLI output. To make it more difficult to break these new functions it is desired to add unit tests, which essentially are declarations of the form "for this input the correct output is this".

The most recent breed addition was for HP switches, please take a look here: https://github.com/RackTables/racktables/pull/225
Respective git commit IDs are: 82286a3, 39e56f2, c7a3040.

It will help if you have experience with git and github.com, although neither of these is a critical requirement. It is much more important to produce clean new code that works well in your environment and does not break old code for all other users. Whichever way you do it, I can do a few rounds of review and you would need to fix or to defend the points I raise. Try to do the whole project quickly, because other things tend to get in the way, and then it takes forever to complete.
infrastation

infrastation

2020-08-31 19:36

administrator   ~0004165

The user manual from March 2020 [1] says GS728TPv2, GS728TPPv2, GS752TPv2 and GS752TPP have only two management options: browser and proprietary software. Neither telnet nor SSH are available. Could you double-check please?

1: https://www.downloads.netgear.com/files/GDC/GS728TPv2/GS728TPv2_GS728TPPv2_GS752TPv2_GS752TPP_UM_EN.pdf
codename

codename

2020-08-31 19:48

reporter   ~0004167

it is not a documented / supported feature.
But there is telnet on port 60000
and once you are telnet ed in you can enable ssh
i have been using it to backup my configs on a schedule.

i believe it is disabled by default but the option is called remote diagnostic tools.
im sure it is the same interface as there higher tier switches that support cli , but i dont have one onhand to test.
codename

codename

2020-08-31 20:02

reporter   ~0004171

looks like the cli takes input in g1 format.
here is a default config file.
SYSTEM CONFIG FILE ::= BEGIN
! Model: GS728TPv2
! System Description: NETGEAR 24-Port Gigabit PoE+ Smart Managed Pro Switch with 4 SFP Ports (GS728TPv2)
! Firmware Version: 6.0.3.3 [Jan 21 2020 - 21:25:36]
! Loader Version: 1.0.0.5 [2017-12-28 09:35:22 UTC]
! Config Version: 0
! System Name:
! MAC Address: 38:94:ED:86:46:06
! Serial Number: 5WW303D750059
! System Up Time: 0 days, 0 hours, 2 mins, 59 secs
!
!
!
ip dhcp
ip name-server
!
username "admin" secret encrypted MoxI8CxBJLy38q9wrsWHWA==
sntp 1 host time-b.netgear.com port 123 ver 4
sntp 2 host time-a.netgear.com port 123 ver 4
sntp 3 host 0.openwrt.pool.ntp.org port 123 ver 4
clock source sntp
!
!
vlan 4088
 name "Auto-VoIP"
vlan 4089
 name "Auto-Video"
voice-vlan oui 0 0:1:e3 SIEMENS
voice-vlan oui 1 0:3:6b CISCO1
voice-vlan oui 2 0:12:43 CISCO2
voice-vlan oui 3 0:60:b9 NITSUKO
voice-vlan oui 4 0:d0:1e PINTEL
voice-vlan oui 5 0:e0:75 VERILINK
voice-vlan oui 6 0:e0:bb 3COM
voice-vlan oui 7 0:4:d AVAYA1
voice-vlan oui 8 0:1b:4f AVAYA2
!
!
!
!
!
!
power inline powerup-mode staggered
spanning-tree mst configuration
 name "38-94-ED-86-46-06"
!
!
!
!
!
snmp user "admin" "AUTH" auth md5 encrypted MoxI8CxBJLy38q9wrsWHWA==
!
!
!
!
!
ip telnet
!
!
!
!
!
!
!
!
!
!
interface g1
!
interface g2
!
interface g3
!
interface g4
!
interface g5
!
interface g6
!
interface g7
!
interface g8
!
interface g9
!
interface g10
!
interface g11
!
interface g12
!
interface g13
!
interface g14
!
interface g15
!
interface g16
!
interface g17
!
interface g18
!
interface g19
!
interface g20
!
interface g21
!
interface g22
!
interface g23
!
interface g24
!
interface g25
!
interface g26
!
interface g27
!
interface g28
!
!
!
!
!
infrastation

infrastation

2020-08-31 21:38

administrator   ~0004175

This could be workable, but you need to confirm this CLI is fully functional in both directions as far as VLAN configuration is concerned. The configuration text (or any other CLI output that does the job) needs to show which VLANs exist, and which interfaces are members of which VLANs in which mode. In IOS-derived syntaxes it looks similar to this:

!
vlan 1,2-10,15
!
interface g5
 switchport mode trunk
 switchport native vlan 2
 switchport trunk allowed vlan 2,3,4,5
!
interface g12
 switchport mode access
 switchport access vlan 15
!

(and the likes)

Likewise, the new code would need to generate the required commands and the CLI must be able to action these commands.
codename

codename

2020-08-31 21:59

reporter   ~0004177

here is a snip from a real config

interface g20
 switchport hybrid pvid 100
 switchport hybrid allowed vlan add 100,222 untagged
 switchport hybrid allowed vlan remove 1
 voice-vlan
 lldp notification

cli can fully update/print the config
it is just not documented.
i will work on seeing if i can implement this.
codename

codename

2020-09-03 04:31

reporter   ~0004179

I have started work and am unable to get the 802.1Q sync to work.
i have gotten the lldp and port status somewhat working but am unable to get the sync to ever be happy about the data that it receives.
https://github.com/CodeNameTheOnlyOne/racktables
i am not sure where to go from here.
the data in the sync page is always red.
how do i just disable the sync for this os?
i am fine with just lldp and port status, i am not needing a configuration solution at this moment, lldp will help me map my topology and that is what i am looking for.
also can we create a dict entry for this "netgear os" i am not sure what to call it in my code, i have been using ngos for now but that seems to short to me.



also how to i get info about the device that is calling the functions, i am needing the max and min ports for port info (have to do sh int ge 1-28 with no way to do all interfaces)?

Thanks in advance, i owe you a beer
infrastation

infrastation

2020-09-03 14:20

administrator   ~0004181

I have made a look at the code. It is OK if you implement only the parts that you need, but they need to be implemented in a clean way. How exactly does the switch software identifies itself if you run "show version" or the local equivalent? So far it seems that "ngos6" or "netgear6" could be an OK name.

In the code you add please use Allman style: https://wiki.racktables.org/index.php/SourceCode#PHP_code_style_guide

Please review the new code and leave only the functions that you need to have and have tested to work. Provide example input and output for these functions, either in this request or in the code comments or as unit tests. Lose the case blocks in ngosTranslatePushQueue() that you do not need. Make ngosSpotConfigText() strip the text before and after the configuration text. In wwwroot/inc/dictionary.php use the next available index for the new OS entry and move it to where it belongs according to sort order. In wwwroot/inc/remote.php register only the functions you need and use the index from dictionary.php, not 50000. If you need the change in queryTerminal(), please explain it.
infrastation

infrastation

2020-09-03 14:27

administrator   ~0004183

Regarding the interface status command, which is currently "show interfaces GigabitEthernet 1-28\n", typically there is a CLI command that shows all interfaces and does not require to know beforehand what they are. Sometimes it happens to be the short version of the "show this specific interface" command, which in this case would be "show interfaces". Sometimes it is a slightly different command, such as "show interface all" or "show interface summary". Sometimes it is a completely different command along the lines "show ethernet switchport detail" or some such. Every CLI has its syntax differences, even on similar products of the same vendor.

Sometimes the only way to figure it out is to look at the "interface" sections in the running-config text.
infrastation

infrastation

2020-09-24 20:42

administrator   ~0004189

Are you stuck because of some technical difficulties, or just ran out of time?

Issue History

Date Modified Username Field Change
2020-08-27 00:29 codename New Issue
2020-08-29 16:48 infrastation Note Added: 0004155
2020-08-31 19:36 infrastation Assigned To => infrastation
2020-08-31 19:36 infrastation Status new => feedback
2020-08-31 19:36 infrastation Note Added: 0004165
2020-08-31 19:48 codename Note Added: 0004167
2020-08-31 19:48 codename Status feedback => assigned
2020-08-31 20:02 codename Note Added: 0004171
2020-08-31 21:38 infrastation Note Added: 0004175
2020-08-31 21:59 codename Note Added: 0004177
2020-09-03 04:31 codename Note Added: 0004179
2020-09-03 14:20 infrastation Note Added: 0004181
2020-09-03 14:27 infrastation Note Added: 0004183
2020-09-24 20:42 infrastation Note Added: 0004189