// 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 }