612 lines
26 KiB
Go
612 lines
26 KiB
Go
// Copyright 2012 Google, Inc. All rights reserved.
|
|
//
|
|
// Use of this source code is governed by a BSD-style license
|
|
// that can be found in the LICENSE file in the root of the source
|
|
// tree.
|
|
|
|
// Enum types courtesy of...
|
|
// http://anonsvn.wireshark.org/wireshark/trunk/epan/dissectors/packet-ndp.c
|
|
|
|
package layers
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/google/gopacket"
|
|
"net"
|
|
)
|
|
|
|
type NDPChassisType uint8
|
|
|
|
// Nortel Chassis Types
|
|
const (
|
|
NDPChassisother NDPChassisType = 1
|
|
NDPChassis3000 NDPChassisType = 2
|
|
NDPChassis3030 NDPChassisType = 3
|
|
NDPChassis2310 NDPChassisType = 4
|
|
NDPChassis2810 NDPChassisType = 5
|
|
NDPChassis2912 NDPChassisType = 6
|
|
NDPChassis2914 NDPChassisType = 7
|
|
NDPChassis271x NDPChassisType = 8
|
|
NDPChassis2813 NDPChassisType = 9
|
|
NDPChassis2814 NDPChassisType = 10
|
|
NDPChassis2915 NDPChassisType = 11
|
|
NDPChassis5000 NDPChassisType = 12
|
|
NDPChassis2813SA NDPChassisType = 13
|
|
NDPChassis2814SA NDPChassisType = 14
|
|
NDPChassis810M NDPChassisType = 15
|
|
NDPChassisEthercell NDPChassisType = 16
|
|
NDPChassis5005 NDPChassisType = 17
|
|
NDPChassisAlcatelEWC NDPChassisType = 18
|
|
NDPChassis2715SA NDPChassisType = 20
|
|
NDPChassis2486 NDPChassisType = 21
|
|
NDPChassis28000series NDPChassisType = 22
|
|
NDPChassis23000series NDPChassisType = 23
|
|
NDPChassis5DN00xseries NDPChassisType = 24
|
|
NDPChassisBayStackEthernet NDPChassisType = 25
|
|
NDPChassis23100series NDPChassisType = 26
|
|
NDPChassis100BaseTHub NDPChassisType = 27
|
|
NDPChassis3000FastEthernet NDPChassisType = 28
|
|
NDPChassisOrionSwitch NDPChassisType = 29
|
|
NDPChassisDDS NDPChassisType = 31
|
|
NDPChassisCentillion6slot NDPChassisType = 32
|
|
NDPChassisCentillion12slot NDPChassisType = 33
|
|
NDPChassisCentillion1slot NDPChassisType = 34
|
|
NDPChassisBayStack301 NDPChassisType = 35
|
|
NDPChassisBayStackTokenRingHub NDPChassisType = 36
|
|
NDPChassisFVCMultimediaSwitch NDPChassisType = 37
|
|
NDPChassisSwitchNode NDPChassisType = 38
|
|
NDPChassisBayStack302Switch NDPChassisType = 39
|
|
NDPChassisBayStack350Switch NDPChassisType = 40
|
|
NDPChassisBayStack150EthernetHub NDPChassisType = 41
|
|
NDPChassisCentillion50NSwitch NDPChassisType = 42
|
|
NDPChassisCentillion50TSwitch NDPChassisType = 43
|
|
NDPChassisBayStack303304Switches NDPChassisType = 44
|
|
NDPChassisBayStack200EthernetHub NDPChassisType = 45
|
|
NDPChassisBayStack25010100EthernetHub NDPChassisType = 46
|
|
NDPChassisBayStack450101001000Switches NDPChassisType = 48
|
|
NDPChassisBayStack41010100Switches NDPChassisType = 49
|
|
NDPChassisPassport1200L3Switch NDPChassisType = 50
|
|
NDPChassisPassport1250L3Switch NDPChassisType = 51
|
|
NDPChassisPassport1100L3Switch NDPChassisType = 52
|
|
NDPChassisPassport1150L3Switch NDPChassisType = 53
|
|
NDPChassisPassport1050L3Switch NDPChassisType = 54
|
|
NDPChassisPassport1051L3Switch NDPChassisType = 55
|
|
NDPChassisPassport8610L3Switch NDPChassisType = 56
|
|
NDPChassisPassport8606L3Switch NDPChassisType = 57
|
|
NDPChassisPassport8010 NDPChassisType = 58
|
|
NDPChassisPassport8006 NDPChassisType = 59
|
|
NDPChassisBayStack670wirelessaccesspoint NDPChassisType = 60
|
|
NDPChassisPassport740 NDPChassisType = 61
|
|
NDPChassisPassport750 NDPChassisType = 62
|
|
NDPChassisPassport790 NDPChassisType = 63
|
|
NDPChassisBusinessPolicySwitch200010100Switches NDPChassisType = 64
|
|
NDPChassisPassport8110L2Switch NDPChassisType = 65
|
|
NDPChassisPassport8106L2Switch NDPChassisType = 66
|
|
NDPChassisBayStack3580GigSwitch NDPChassisType = 67
|
|
NDPChassisBayStack10PowerSupplyUnit NDPChassisType = 68
|
|
NDPChassisBayStack42010100Switch NDPChassisType = 69
|
|
NDPChassisOPTeraMetro1200EthernetServiceModule NDPChassisType = 70
|
|
NDPChassisOPTera8010co NDPChassisType = 71
|
|
NDPChassisOPTera8610coL3Switch NDPChassisType = 72
|
|
NDPChassisOPTera8110coL2Switch NDPChassisType = 73
|
|
NDPChassisOPTera8003 NDPChassisType = 74
|
|
NDPChassisOPTera8603L3Switch NDPChassisType = 75
|
|
NDPChassisOPTera8103L2Switch NDPChassisType = 76
|
|
NDPChassisBayStack380101001000Switch NDPChassisType = 77
|
|
NDPChassisEthernetSwitch47048T NDPChassisType = 78
|
|
NDPChassisOPTeraMetro1450EthernetServiceModule NDPChassisType = 79
|
|
NDPChassisOPTeraMetro1400EthernetServiceModule NDPChassisType = 80
|
|
NDPChassisAlteonSwitchFamily NDPChassisType = 81
|
|
NDPChassisEthernetSwitch46024TPWR NDPChassisType = 82
|
|
NDPChassisOPTeraMetro8010OPML2Switch NDPChassisType = 83
|
|
NDPChassisOPTeraMetro8010coOPML2Switch NDPChassisType = 84
|
|
NDPChassisOPTeraMetro8006OPML2Switch NDPChassisType = 85
|
|
NDPChassisOPTeraMetro8003OPML2Switch NDPChassisType = 86
|
|
NDPChassisAlteon180e NDPChassisType = 87
|
|
NDPChassisAlteonAD3 NDPChassisType = 88
|
|
NDPChassisAlteon184 NDPChassisType = 89
|
|
NDPChassisAlteonAD4 NDPChassisType = 90
|
|
NDPChassisPassport1424L3Switch NDPChassisType = 91
|
|
NDPChassisPassport1648L3Switch NDPChassisType = 92
|
|
NDPChassisPassport1612L3Switch NDPChassisType = 93
|
|
NDPChassisPassport1624L3Switch NDPChassisType = 94
|
|
NDPChassisBayStack38024FFiber1000Switch NDPChassisType = 95
|
|
NDPChassisEthernetRoutingSwitch551024T NDPChassisType = 96
|
|
NDPChassisEthernetRoutingSwitch551048T NDPChassisType = 97
|
|
NDPChassisEthernetSwitch47024T NDPChassisType = 98
|
|
NDPChassisNortelNetworksWirelessLANAccessPoint2220 NDPChassisType = 99
|
|
NDPChassisPassportRBS2402L3Switch NDPChassisType = 100
|
|
NDPChassisAlteonApplicationSwitch2424 NDPChassisType = 101
|
|
NDPChassisAlteonApplicationSwitch2224 NDPChassisType = 102
|
|
NDPChassisAlteonApplicationSwitch2208 NDPChassisType = 103
|
|
NDPChassisAlteonApplicationSwitch2216 NDPChassisType = 104
|
|
NDPChassisAlteonApplicationSwitch3408 NDPChassisType = 105
|
|
NDPChassisAlteonApplicationSwitch3416 NDPChassisType = 106
|
|
NDPChassisNortelNetworksWirelessLANSecuritySwitch2250 NDPChassisType = 107
|
|
NDPChassisEthernetSwitch42548T NDPChassisType = 108
|
|
NDPChassisEthernetSwitch42524T NDPChassisType = 109
|
|
NDPChassisNortelNetworksWirelessLANAccessPoint2221 NDPChassisType = 110
|
|
NDPChassisNortelMetroEthernetServiceUnit24TSPFswitch NDPChassisType = 111
|
|
NDPChassisNortelMetroEthernetServiceUnit24TLXDCswitch NDPChassisType = 112
|
|
NDPChassisPassport830010slotchassis NDPChassisType = 113
|
|
NDPChassisPassport83006slotchassis NDPChassisType = 114
|
|
NDPChassisEthernetRoutingSwitch552024TPWR NDPChassisType = 115
|
|
NDPChassisEthernetRoutingSwitch552048TPWR NDPChassisType = 116
|
|
NDPChassisNortelNetworksVPNGateway3050 NDPChassisType = 117
|
|
NDPChassisAlteonSSL31010100 NDPChassisType = 118
|
|
NDPChassisAlteonSSL31010100Fiber NDPChassisType = 119
|
|
NDPChassisAlteonSSL31010100FIPS NDPChassisType = 120
|
|
NDPChassisAlteonSSL410101001000 NDPChassisType = 121
|
|
NDPChassisAlteonSSL410101001000Fiber NDPChassisType = 122
|
|
NDPChassisAlteonApplicationSwitch2424SSL NDPChassisType = 123
|
|
NDPChassisEthernetSwitch32524T NDPChassisType = 124
|
|
NDPChassisEthernetSwitch32524G NDPChassisType = 125
|
|
NDPChassisNortelNetworksWirelessLANAccessPoint2225 NDPChassisType = 126
|
|
NDPChassisNortelNetworksWirelessLANSecuritySwitch2270 NDPChassisType = 127
|
|
NDPChassis24portEthernetSwitch47024TPWR NDPChassisType = 128
|
|
NDPChassis48portEthernetSwitch47048TPWR NDPChassisType = 129
|
|
NDPChassisEthernetRoutingSwitch553024TFD NDPChassisType = 130
|
|
NDPChassisEthernetSwitch351024T NDPChassisType = 131
|
|
NDPChassisNortelMetroEthernetServiceUnit12GACL3Switch NDPChassisType = 132
|
|
NDPChassisNortelMetroEthernetServiceUnit12GDCL3Switch NDPChassisType = 133
|
|
NDPChassisNortelSecureAccessSwitch NDPChassisType = 134
|
|
NDPChassisNortelNetworksVPNGateway3070 NDPChassisType = 135
|
|
NDPChassisOPTeraMetro3500 NDPChassisType = 136
|
|
NDPChassisSMBBES101024T NDPChassisType = 137
|
|
NDPChassisSMBBES101048T NDPChassisType = 138
|
|
NDPChassisSMBBES102024TPWR NDPChassisType = 139
|
|
NDPChassisSMBBES102048TPWR NDPChassisType = 140
|
|
NDPChassisSMBBES201024T NDPChassisType = 141
|
|
NDPChassisSMBBES201048T NDPChassisType = 142
|
|
NDPChassisSMBBES202024TPWR NDPChassisType = 143
|
|
NDPChassisSMBBES202048TPWR NDPChassisType = 144
|
|
NDPChassisSMBBES11024T NDPChassisType = 145
|
|
NDPChassisSMBBES11048T NDPChassisType = 146
|
|
NDPChassisSMBBES12024TPWR NDPChassisType = 147
|
|
NDPChassisSMBBES12048TPWR NDPChassisType = 148
|
|
NDPChassisSMBBES21024T NDPChassisType = 149
|
|
NDPChassisSMBBES21048T NDPChassisType = 150
|
|
NDPChassisSMBBES22024TPWR NDPChassisType = 151
|
|
NDPChassisSMBBES22048TPWR NDPChassisType = 152
|
|
NDPChassisOME6500 NDPChassisType = 153
|
|
NDPChassisEthernetRoutingSwitch4548GT NDPChassisType = 154
|
|
NDPChassisEthernetRoutingSwitch4548GTPWR NDPChassisType = 155
|
|
NDPChassisEthernetRoutingSwitch4550T NDPChassisType = 156
|
|
NDPChassisEthernetRoutingSwitch4550TPWR NDPChassisType = 157
|
|
NDPChassisEthernetRoutingSwitch4526FX NDPChassisType = 158
|
|
NDPChassisEthernetRoutingSwitch250026T NDPChassisType = 159
|
|
NDPChassisEthernetRoutingSwitch250026TPWR NDPChassisType = 160
|
|
NDPChassisEthernetRoutingSwitch250050T NDPChassisType = 161
|
|
NDPChassisEthernetRoutingSwitch250050TPWR NDPChassisType = 162
|
|
)
|
|
|
|
type NDPBackplaneType uint8
|
|
|
|
// Nortel Backplane Types
|
|
const (
|
|
NDPBackplaneOther NDPBackplaneType = 1
|
|
NDPBackplaneEthernet NDPBackplaneType = 2
|
|
NDPBackplaneEthernetTokenring NDPBackplaneType = 3
|
|
NDPBackplaneEthernetFDDI NDPBackplaneType = 4
|
|
NDPBackplaneEthernetTokenringFDDI NDPBackplaneType = 5
|
|
NDPBackplaneEthernetTokenringRedundantPower NDPBackplaneType = 6
|
|
NDPBackplaneEthernetTokenringFDDIRedundantPower NDPBackplaneType = 7
|
|
NDPBackplaneTokenRing NDPBackplaneType = 8
|
|
NDPBackplaneEthernetTokenringFastEthernet NDPBackplaneType = 9
|
|
NDPBackplaneEthernetFastEthernet NDPBackplaneType = 10
|
|
NDPBackplaneEthernetTokenringFastEthernetRedundantPower NDPBackplaneType = 11
|
|
NDPBackplaneEthernetFastEthernetGigabitEthernet NDPBackplaneType = 12
|
|
)
|
|
|
|
type NDPState uint8
|
|
|
|
// Device State
|
|
const (
|
|
NDPStateTopology NDPState = 1
|
|
NDPStateHeartbeat NDPState = 2
|
|
NDPStateNew NDPState = 3
|
|
)
|
|
|
|
// NortelDiscovery is a packet layer containing the Nortel Discovery Protocol.
|
|
type NortelDiscovery struct {
|
|
BaseLayer
|
|
IPAddress net.IP
|
|
SegmentID []byte
|
|
Chassis NDPChassisType
|
|
Backplane NDPBackplaneType
|
|
State NDPState
|
|
NumLinks uint8
|
|
}
|
|
|
|
// LayerType returns gopacket.LayerTypeNortelDiscovery.
|
|
func (c *NortelDiscovery) LayerType() gopacket.LayerType {
|
|
return LayerTypeNortelDiscovery
|
|
}
|
|
|
|
func decodeNortelDiscovery(data []byte, p gopacket.PacketBuilder) error {
|
|
c := &NortelDiscovery{}
|
|
if len(data) < 11 {
|
|
return fmt.Errorf("Invalid NortelDiscovery packet length %d", len(data))
|
|
}
|
|
c.IPAddress = data[0:4]
|
|
c.SegmentID = data[4:7]
|
|
c.Chassis = NDPChassisType(data[7])
|
|
c.Backplane = NDPBackplaneType(data[8])
|
|
c.State = NDPState(data[9])
|
|
c.NumLinks = uint8(data[10])
|
|
p.AddLayer(c)
|
|
return nil
|
|
}
|
|
|
|
func (t NDPChassisType) String() (s string) {
|
|
switch t {
|
|
case NDPChassisother:
|
|
s = "other"
|
|
case NDPChassis3000:
|
|
s = "3000"
|
|
case NDPChassis3030:
|
|
s = "3030"
|
|
case NDPChassis2310:
|
|
s = "2310"
|
|
case NDPChassis2810:
|
|
s = "2810"
|
|
case NDPChassis2912:
|
|
s = "2912"
|
|
case NDPChassis2914:
|
|
s = "2914"
|
|
case NDPChassis271x:
|
|
s = "271x"
|
|
case NDPChassis2813:
|
|
s = "2813"
|
|
case NDPChassis2814:
|
|
s = "2814"
|
|
case NDPChassis2915:
|
|
s = "2915"
|
|
case NDPChassis5000:
|
|
s = "5000"
|
|
case NDPChassis2813SA:
|
|
s = "2813SA"
|
|
case NDPChassis2814SA:
|
|
s = "2814SA"
|
|
case NDPChassis810M:
|
|
s = "810M"
|
|
case NDPChassisEthercell:
|
|
s = "Ethercell"
|
|
case NDPChassis5005:
|
|
s = "5005"
|
|
case NDPChassisAlcatelEWC:
|
|
s = "Alcatel Ethernet workgroup conc."
|
|
case NDPChassis2715SA:
|
|
s = "2715SA"
|
|
case NDPChassis2486:
|
|
s = "2486"
|
|
case NDPChassis28000series:
|
|
s = "28000 series"
|
|
case NDPChassis23000series:
|
|
s = "23000 series"
|
|
case NDPChassis5DN00xseries:
|
|
s = "5DN00x series"
|
|
case NDPChassisBayStackEthernet:
|
|
s = "BayStack Ethernet"
|
|
case NDPChassis23100series:
|
|
s = "23100 series"
|
|
case NDPChassis100BaseTHub:
|
|
s = "100Base-T Hub"
|
|
case NDPChassis3000FastEthernet:
|
|
s = "3000 Fast Ethernet"
|
|
case NDPChassisOrionSwitch:
|
|
s = "Orion switch"
|
|
case NDPChassisDDS:
|
|
s = "DDS"
|
|
case NDPChassisCentillion6slot:
|
|
s = "Centillion (6 slot)"
|
|
case NDPChassisCentillion12slot:
|
|
s = "Centillion (12 slot)"
|
|
case NDPChassisCentillion1slot:
|
|
s = "Centillion (1 slot)"
|
|
case NDPChassisBayStack301:
|
|
s = "BayStack 301"
|
|
case NDPChassisBayStackTokenRingHub:
|
|
s = "BayStack TokenRing Hub"
|
|
case NDPChassisFVCMultimediaSwitch:
|
|
s = "FVC Multimedia Switch"
|
|
case NDPChassisSwitchNode:
|
|
s = "Switch Node"
|
|
case NDPChassisBayStack302Switch:
|
|
s = "BayStack 302 Switch"
|
|
case NDPChassisBayStack350Switch:
|
|
s = "BayStack 350 Switch"
|
|
case NDPChassisBayStack150EthernetHub:
|
|
s = "BayStack 150 Ethernet Hub"
|
|
case NDPChassisCentillion50NSwitch:
|
|
s = "Centillion 50N switch"
|
|
case NDPChassisCentillion50TSwitch:
|
|
s = "Centillion 50T switch"
|
|
case NDPChassisBayStack303304Switches:
|
|
s = "BayStack 303 and 304 Switches"
|
|
case NDPChassisBayStack200EthernetHub:
|
|
s = "BayStack 200 Ethernet Hub"
|
|
case NDPChassisBayStack25010100EthernetHub:
|
|
s = "BayStack 250 10/100 Ethernet Hub"
|
|
case NDPChassisBayStack450101001000Switches:
|
|
s = "BayStack 450 10/100/1000 Switches"
|
|
case NDPChassisBayStack41010100Switches:
|
|
s = "BayStack 410 10/100 Switches"
|
|
case NDPChassisPassport1200L3Switch:
|
|
s = "Passport 1200 L3 Switch"
|
|
case NDPChassisPassport1250L3Switch:
|
|
s = "Passport 1250 L3 Switch"
|
|
case NDPChassisPassport1100L3Switch:
|
|
s = "Passport 1100 L3 Switch"
|
|
case NDPChassisPassport1150L3Switch:
|
|
s = "Passport 1150 L3 Switch"
|
|
case NDPChassisPassport1050L3Switch:
|
|
s = "Passport 1050 L3 Switch"
|
|
case NDPChassisPassport1051L3Switch:
|
|
s = "Passport 1051 L3 Switch"
|
|
case NDPChassisPassport8610L3Switch:
|
|
s = "Passport 8610 L3 Switch"
|
|
case NDPChassisPassport8606L3Switch:
|
|
s = "Passport 8606 L3 Switch"
|
|
case NDPChassisPassport8010:
|
|
s = "Passport 8010"
|
|
case NDPChassisPassport8006:
|
|
s = "Passport 8006"
|
|
case NDPChassisBayStack670wirelessaccesspoint:
|
|
s = "BayStack 670 wireless access point"
|
|
case NDPChassisPassport740:
|
|
s = "Passport 740"
|
|
case NDPChassisPassport750:
|
|
s = "Passport 750"
|
|
case NDPChassisPassport790:
|
|
s = "Passport 790"
|
|
case NDPChassisBusinessPolicySwitch200010100Switches:
|
|
s = "Business Policy Switch 2000 10/100 Switches"
|
|
case NDPChassisPassport8110L2Switch:
|
|
s = "Passport 8110 L2 Switch"
|
|
case NDPChassisPassport8106L2Switch:
|
|
s = "Passport 8106 L2 Switch"
|
|
case NDPChassisBayStack3580GigSwitch:
|
|
s = "BayStack 3580 Gig Switch"
|
|
case NDPChassisBayStack10PowerSupplyUnit:
|
|
s = "BayStack 10 Power Supply Unit"
|
|
case NDPChassisBayStack42010100Switch:
|
|
s = "BayStack 420 10/100 Switch"
|
|
case NDPChassisOPTeraMetro1200EthernetServiceModule:
|
|
s = "OPTera Metro 1200 Ethernet Service Module"
|
|
case NDPChassisOPTera8010co:
|
|
s = "OPTera 8010co"
|
|
case NDPChassisOPTera8610coL3Switch:
|
|
s = "OPTera 8610co L3 switch"
|
|
case NDPChassisOPTera8110coL2Switch:
|
|
s = "OPTera 8110co L2 switch"
|
|
case NDPChassisOPTera8003:
|
|
s = "OPTera 8003"
|
|
case NDPChassisOPTera8603L3Switch:
|
|
s = "OPTera 8603 L3 switch"
|
|
case NDPChassisOPTera8103L2Switch:
|
|
s = "OPTera 8103 L2 switch"
|
|
case NDPChassisBayStack380101001000Switch:
|
|
s = "BayStack 380 10/100/1000 Switch"
|
|
case NDPChassisEthernetSwitch47048T:
|
|
s = "Ethernet Switch 470-48T"
|
|
case NDPChassisOPTeraMetro1450EthernetServiceModule:
|
|
s = "OPTera Metro 1450 Ethernet Service Module"
|
|
case NDPChassisOPTeraMetro1400EthernetServiceModule:
|
|
s = "OPTera Metro 1400 Ethernet Service Module"
|
|
case NDPChassisAlteonSwitchFamily:
|
|
s = "Alteon Switch Family"
|
|
case NDPChassisEthernetSwitch46024TPWR:
|
|
s = "Ethernet Switch 460-24T-PWR"
|
|
case NDPChassisOPTeraMetro8010OPML2Switch:
|
|
s = "OPTera Metro 8010 OPM L2 Switch"
|
|
case NDPChassisOPTeraMetro8010coOPML2Switch:
|
|
s = "OPTera Metro 8010co OPM L2 Switch"
|
|
case NDPChassisOPTeraMetro8006OPML2Switch:
|
|
s = "OPTera Metro 8006 OPM L2 Switch"
|
|
case NDPChassisOPTeraMetro8003OPML2Switch:
|
|
s = "OPTera Metro 8003 OPM L2 Switch"
|
|
case NDPChassisAlteon180e:
|
|
s = "Alteon 180e"
|
|
case NDPChassisAlteonAD3:
|
|
s = "Alteon AD3"
|
|
case NDPChassisAlteon184:
|
|
s = "Alteon 184"
|
|
case NDPChassisAlteonAD4:
|
|
s = "Alteon AD4"
|
|
case NDPChassisPassport1424L3Switch:
|
|
s = "Passport 1424 L3 switch"
|
|
case NDPChassisPassport1648L3Switch:
|
|
s = "Passport 1648 L3 switch"
|
|
case NDPChassisPassport1612L3Switch:
|
|
s = "Passport 1612 L3 switch"
|
|
case NDPChassisPassport1624L3Switch:
|
|
s = "Passport 1624 L3 switch"
|
|
case NDPChassisBayStack38024FFiber1000Switch:
|
|
s = "BayStack 380-24F Fiber 1000 Switch"
|
|
case NDPChassisEthernetRoutingSwitch551024T:
|
|
s = "Ethernet Routing Switch 5510-24T"
|
|
case NDPChassisEthernetRoutingSwitch551048T:
|
|
s = "Ethernet Routing Switch 5510-48T"
|
|
case NDPChassisEthernetSwitch47024T:
|
|
s = "Ethernet Switch 470-24T"
|
|
case NDPChassisNortelNetworksWirelessLANAccessPoint2220:
|
|
s = "Nortel Networks Wireless LAN Access Point 2220"
|
|
case NDPChassisPassportRBS2402L3Switch:
|
|
s = "Passport RBS 2402 L3 switch"
|
|
case NDPChassisAlteonApplicationSwitch2424:
|
|
s = "Alteon Application Switch 2424"
|
|
case NDPChassisAlteonApplicationSwitch2224:
|
|
s = "Alteon Application Switch 2224"
|
|
case NDPChassisAlteonApplicationSwitch2208:
|
|
s = "Alteon Application Switch 2208"
|
|
case NDPChassisAlteonApplicationSwitch2216:
|
|
s = "Alteon Application Switch 2216"
|
|
case NDPChassisAlteonApplicationSwitch3408:
|
|
s = "Alteon Application Switch 3408"
|
|
case NDPChassisAlteonApplicationSwitch3416:
|
|
s = "Alteon Application Switch 3416"
|
|
case NDPChassisNortelNetworksWirelessLANSecuritySwitch2250:
|
|
s = "Nortel Networks Wireless LAN SecuritySwitch 2250"
|
|
case NDPChassisEthernetSwitch42548T:
|
|
s = "Ethernet Switch 425-48T"
|
|
case NDPChassisEthernetSwitch42524T:
|
|
s = "Ethernet Switch 425-24T"
|
|
case NDPChassisNortelNetworksWirelessLANAccessPoint2221:
|
|
s = "Nortel Networks Wireless LAN Access Point 2221"
|
|
case NDPChassisNortelMetroEthernetServiceUnit24TSPFswitch:
|
|
s = "Nortel Metro Ethernet Service Unit 24-T SPF switch"
|
|
case NDPChassisNortelMetroEthernetServiceUnit24TLXDCswitch:
|
|
s = " Nortel Metro Ethernet Service Unit 24-T LX DC switch"
|
|
case NDPChassisPassport830010slotchassis:
|
|
s = "Passport 8300 10-slot chassis"
|
|
case NDPChassisPassport83006slotchassis:
|
|
s = "Passport 8300 6-slot chassis"
|
|
case NDPChassisEthernetRoutingSwitch552024TPWR:
|
|
s = "Ethernet Routing Switch 5520-24T-PWR"
|
|
case NDPChassisEthernetRoutingSwitch552048TPWR:
|
|
s = "Ethernet Routing Switch 5520-48T-PWR"
|
|
case NDPChassisNortelNetworksVPNGateway3050:
|
|
s = "Nortel Networks VPN Gateway 3050"
|
|
case NDPChassisAlteonSSL31010100:
|
|
s = "Alteon SSL 310 10/100"
|
|
case NDPChassisAlteonSSL31010100Fiber:
|
|
s = "Alteon SSL 310 10/100 Fiber"
|
|
case NDPChassisAlteonSSL31010100FIPS:
|
|
s = "Alteon SSL 310 10/100 FIPS"
|
|
case NDPChassisAlteonSSL410101001000:
|
|
s = "Alteon SSL 410 10/100/1000"
|
|
case NDPChassisAlteonSSL410101001000Fiber:
|
|
s = "Alteon SSL 410 10/100/1000 Fiber"
|
|
case NDPChassisAlteonApplicationSwitch2424SSL:
|
|
s = "Alteon Application Switch 2424-SSL"
|
|
case NDPChassisEthernetSwitch32524T:
|
|
s = "Ethernet Switch 325-24T"
|
|
case NDPChassisEthernetSwitch32524G:
|
|
s = "Ethernet Switch 325-24G"
|
|
case NDPChassisNortelNetworksWirelessLANAccessPoint2225:
|
|
s = "Nortel Networks Wireless LAN Access Point 2225"
|
|
case NDPChassisNortelNetworksWirelessLANSecuritySwitch2270:
|
|
s = "Nortel Networks Wireless LAN SecuritySwitch 2270"
|
|
case NDPChassis24portEthernetSwitch47024TPWR:
|
|
s = "24-port Ethernet Switch 470-24T-PWR"
|
|
case NDPChassis48portEthernetSwitch47048TPWR:
|
|
s = "48-port Ethernet Switch 470-48T-PWR"
|
|
case NDPChassisEthernetRoutingSwitch553024TFD:
|
|
s = "Ethernet Routing Switch 5530-24TFD"
|
|
case NDPChassisEthernetSwitch351024T:
|
|
s = "Ethernet Switch 3510-24T"
|
|
case NDPChassisNortelMetroEthernetServiceUnit12GACL3Switch:
|
|
s = "Nortel Metro Ethernet Service Unit 12G AC L3 switch"
|
|
case NDPChassisNortelMetroEthernetServiceUnit12GDCL3Switch:
|
|
s = "Nortel Metro Ethernet Service Unit 12G DC L3 switch"
|
|
case NDPChassisNortelSecureAccessSwitch:
|
|
s = "Nortel Secure Access Switch"
|
|
case NDPChassisNortelNetworksVPNGateway3070:
|
|
s = "Nortel Networks VPN Gateway 3070"
|
|
case NDPChassisOPTeraMetro3500:
|
|
s = "OPTera Metro 3500"
|
|
case NDPChassisSMBBES101024T:
|
|
s = "SMB BES 1010 24T"
|
|
case NDPChassisSMBBES101048T:
|
|
s = "SMB BES 1010 48T"
|
|
case NDPChassisSMBBES102024TPWR:
|
|
s = "SMB BES 1020 24T PWR"
|
|
case NDPChassisSMBBES102048TPWR:
|
|
s = "SMB BES 1020 48T PWR"
|
|
case NDPChassisSMBBES201024T:
|
|
s = "SMB BES 2010 24T"
|
|
case NDPChassisSMBBES201048T:
|
|
s = "SMB BES 2010 48T"
|
|
case NDPChassisSMBBES202024TPWR:
|
|
s = "SMB BES 2020 24T PWR"
|
|
case NDPChassisSMBBES202048TPWR:
|
|
s = "SMB BES 2020 48T PWR"
|
|
case NDPChassisSMBBES11024T:
|
|
s = "SMB BES 110 24T"
|
|
case NDPChassisSMBBES11048T:
|
|
s = "SMB BES 110 48T"
|
|
case NDPChassisSMBBES12024TPWR:
|
|
s = "SMB BES 120 24T PWR"
|
|
case NDPChassisSMBBES12048TPWR:
|
|
s = "SMB BES 120 48T PWR"
|
|
case NDPChassisSMBBES21024T:
|
|
s = "SMB BES 210 24T"
|
|
case NDPChassisSMBBES21048T:
|
|
s = "SMB BES 210 48T"
|
|
case NDPChassisSMBBES22024TPWR:
|
|
s = "SMB BES 220 24T PWR"
|
|
case NDPChassisSMBBES22048TPWR:
|
|
s = "SMB BES 220 48T PWR"
|
|
case NDPChassisOME6500:
|
|
s = "OME 6500"
|
|
case NDPChassisEthernetRoutingSwitch4548GT:
|
|
s = "Ethernet Routing Switch 4548GT"
|
|
case NDPChassisEthernetRoutingSwitch4548GTPWR:
|
|
s = "Ethernet Routing Switch 4548GT-PWR"
|
|
case NDPChassisEthernetRoutingSwitch4550T:
|
|
s = "Ethernet Routing Switch 4550T"
|
|
case NDPChassisEthernetRoutingSwitch4550TPWR:
|
|
s = "Ethernet Routing Switch 4550T-PWR"
|
|
case NDPChassisEthernetRoutingSwitch4526FX:
|
|
s = "Ethernet Routing Switch 4526FX"
|
|
case NDPChassisEthernetRoutingSwitch250026T:
|
|
s = "Ethernet Routing Switch 2500-26T"
|
|
case NDPChassisEthernetRoutingSwitch250026TPWR:
|
|
s = "Ethernet Routing Switch 2500-26T-PWR"
|
|
case NDPChassisEthernetRoutingSwitch250050T:
|
|
s = "Ethernet Routing Switch 2500-50T"
|
|
case NDPChassisEthernetRoutingSwitch250050TPWR:
|
|
s = "Ethernet Routing Switch 2500-50T-PWR"
|
|
default:
|
|
s = "Unknown"
|
|
}
|
|
return
|
|
}
|
|
|
|
func (t NDPBackplaneType) String() (s string) {
|
|
switch t {
|
|
case NDPBackplaneOther:
|
|
s = "Other"
|
|
case NDPBackplaneEthernet:
|
|
s = "Ethernet"
|
|
case NDPBackplaneEthernetTokenring:
|
|
s = "Ethernet and Tokenring"
|
|
case NDPBackplaneEthernetFDDI:
|
|
s = "Ethernet and FDDI"
|
|
case NDPBackplaneEthernetTokenringFDDI:
|
|
s = "Ethernet, Tokenring and FDDI"
|
|
case NDPBackplaneEthernetTokenringRedundantPower:
|
|
s = "Ethernet and Tokenring with redundant power"
|
|
case NDPBackplaneEthernetTokenringFDDIRedundantPower:
|
|
s = "Ethernet, Tokenring, FDDI with redundant power"
|
|
case NDPBackplaneTokenRing:
|
|
s = "Token Ring"
|
|
case NDPBackplaneEthernetTokenringFastEthernet:
|
|
s = "Ethernet, Tokenring and Fast Ethernet"
|
|
case NDPBackplaneEthernetFastEthernet:
|
|
s = "Ethernet and Fast Ethernet"
|
|
case NDPBackplaneEthernetTokenringFastEthernetRedundantPower:
|
|
s = "Ethernet, Tokenring, Fast Ethernet with redundant power"
|
|
case NDPBackplaneEthernetFastEthernetGigabitEthernet:
|
|
s = "Ethernet, Fast Ethernet and Gigabit Ethernet"
|
|
default:
|
|
s = "Unknown"
|
|
}
|
|
return
|
|
}
|
|
|
|
func (t NDPState) String() (s string) {
|
|
switch t {
|
|
case NDPStateTopology:
|
|
s = "Topology Change"
|
|
case NDPStateHeartbeat:
|
|
s = "Heartbeat"
|
|
case NDPStateNew:
|
|
s = "New"
|
|
default:
|
|
s = "Unknown"
|
|
}
|
|
return
|
|
}
|