github.com/gopacket/gopacket@v1.1.0/layers/ndp.go (about)

     1  // Copyright 2012 Google, Inc. All rights reserved.
     2  //
     3  // Use of this source code is governed by a BSD-style license
     4  // that can be found in the LICENSE file in the root of the source
     5  // tree.
     6  
     7  // Enum types courtesy of...
     8  // http://anonsvn.wireshark.org/wireshark/trunk/epan/dissectors/packet-ndp.c
     9  
    10  package layers
    11  
    12  import (
    13  	"fmt"
    14  	"net"
    15  
    16  	"github.com/gopacket/gopacket"
    17  )
    18  
    19  type NDPChassisType uint8
    20  
    21  // Nortel Chassis Types
    22  const (
    23  	NDPChassisother                                       NDPChassisType = 1
    24  	NDPChassis3000                                        NDPChassisType = 2
    25  	NDPChassis3030                                        NDPChassisType = 3
    26  	NDPChassis2310                                        NDPChassisType = 4
    27  	NDPChassis2810                                        NDPChassisType = 5
    28  	NDPChassis2912                                        NDPChassisType = 6
    29  	NDPChassis2914                                        NDPChassisType = 7
    30  	NDPChassis271x                                        NDPChassisType = 8
    31  	NDPChassis2813                                        NDPChassisType = 9
    32  	NDPChassis2814                                        NDPChassisType = 10
    33  	NDPChassis2915                                        NDPChassisType = 11
    34  	NDPChassis5000                                        NDPChassisType = 12
    35  	NDPChassis2813SA                                      NDPChassisType = 13
    36  	NDPChassis2814SA                                      NDPChassisType = 14
    37  	NDPChassis810M                                        NDPChassisType = 15
    38  	NDPChassisEthercell                                   NDPChassisType = 16
    39  	NDPChassis5005                                        NDPChassisType = 17
    40  	NDPChassisAlcatelEWC                                  NDPChassisType = 18
    41  	NDPChassis2715SA                                      NDPChassisType = 20
    42  	NDPChassis2486                                        NDPChassisType = 21
    43  	NDPChassis28000series                                 NDPChassisType = 22
    44  	NDPChassis23000series                                 NDPChassisType = 23
    45  	NDPChassis5DN00xseries                                NDPChassisType = 24
    46  	NDPChassisBayStackEthernet                            NDPChassisType = 25
    47  	NDPChassis23100series                                 NDPChassisType = 26
    48  	NDPChassis100BaseTHub                                 NDPChassisType = 27
    49  	NDPChassis3000FastEthernet                            NDPChassisType = 28
    50  	NDPChassisOrionSwitch                                 NDPChassisType = 29
    51  	NDPChassisDDS                                         NDPChassisType = 31
    52  	NDPChassisCentillion6slot                             NDPChassisType = 32
    53  	NDPChassisCentillion12slot                            NDPChassisType = 33
    54  	NDPChassisCentillion1slot                             NDPChassisType = 34
    55  	NDPChassisBayStack301                                 NDPChassisType = 35
    56  	NDPChassisBayStackTokenRingHub                        NDPChassisType = 36
    57  	NDPChassisFVCMultimediaSwitch                         NDPChassisType = 37
    58  	NDPChassisSwitchNode                                  NDPChassisType = 38
    59  	NDPChassisBayStack302Switch                           NDPChassisType = 39
    60  	NDPChassisBayStack350Switch                           NDPChassisType = 40
    61  	NDPChassisBayStack150EthernetHub                      NDPChassisType = 41
    62  	NDPChassisCentillion50NSwitch                         NDPChassisType = 42
    63  	NDPChassisCentillion50TSwitch                         NDPChassisType = 43
    64  	NDPChassisBayStack303304Switches                      NDPChassisType = 44
    65  	NDPChassisBayStack200EthernetHub                      NDPChassisType = 45
    66  	NDPChassisBayStack25010100EthernetHub                 NDPChassisType = 46
    67  	NDPChassisBayStack450101001000Switches                NDPChassisType = 48
    68  	NDPChassisBayStack41010100Switches                    NDPChassisType = 49
    69  	NDPChassisPassport1200L3Switch                        NDPChassisType = 50
    70  	NDPChassisPassport1250L3Switch                        NDPChassisType = 51
    71  	NDPChassisPassport1100L3Switch                        NDPChassisType = 52
    72  	NDPChassisPassport1150L3Switch                        NDPChassisType = 53
    73  	NDPChassisPassport1050L3Switch                        NDPChassisType = 54
    74  	NDPChassisPassport1051L3Switch                        NDPChassisType = 55
    75  	NDPChassisPassport8610L3Switch                        NDPChassisType = 56
    76  	NDPChassisPassport8606L3Switch                        NDPChassisType = 57
    77  	NDPChassisPassport8010                                NDPChassisType = 58
    78  	NDPChassisPassport8006                                NDPChassisType = 59
    79  	NDPChassisBayStack670wirelessaccesspoint              NDPChassisType = 60
    80  	NDPChassisPassport740                                 NDPChassisType = 61
    81  	NDPChassisPassport750                                 NDPChassisType = 62
    82  	NDPChassisPassport790                                 NDPChassisType = 63
    83  	NDPChassisBusinessPolicySwitch200010100Switches       NDPChassisType = 64
    84  	NDPChassisPassport8110L2Switch                        NDPChassisType = 65
    85  	NDPChassisPassport8106L2Switch                        NDPChassisType = 66
    86  	NDPChassisBayStack3580GigSwitch                       NDPChassisType = 67
    87  	NDPChassisBayStack10PowerSupplyUnit                   NDPChassisType = 68
    88  	NDPChassisBayStack42010100Switch                      NDPChassisType = 69
    89  	NDPChassisOPTeraMetro1200EthernetServiceModule        NDPChassisType = 70
    90  	NDPChassisOPTera8010co                                NDPChassisType = 71
    91  	NDPChassisOPTera8610coL3Switch                        NDPChassisType = 72
    92  	NDPChassisOPTera8110coL2Switch                        NDPChassisType = 73
    93  	NDPChassisOPTera8003                                  NDPChassisType = 74
    94  	NDPChassisOPTera8603L3Switch                          NDPChassisType = 75
    95  	NDPChassisOPTera8103L2Switch                          NDPChassisType = 76
    96  	NDPChassisBayStack380101001000Switch                  NDPChassisType = 77
    97  	NDPChassisEthernetSwitch47048T                        NDPChassisType = 78
    98  	NDPChassisOPTeraMetro1450EthernetServiceModule        NDPChassisType = 79
    99  	NDPChassisOPTeraMetro1400EthernetServiceModule        NDPChassisType = 80
   100  	NDPChassisAlteonSwitchFamily                          NDPChassisType = 81
   101  	NDPChassisEthernetSwitch46024TPWR                     NDPChassisType = 82
   102  	NDPChassisOPTeraMetro8010OPML2Switch                  NDPChassisType = 83
   103  	NDPChassisOPTeraMetro8010coOPML2Switch                NDPChassisType = 84
   104  	NDPChassisOPTeraMetro8006OPML2Switch                  NDPChassisType = 85
   105  	NDPChassisOPTeraMetro8003OPML2Switch                  NDPChassisType = 86
   106  	NDPChassisAlteon180e                                  NDPChassisType = 87
   107  	NDPChassisAlteonAD3                                   NDPChassisType = 88
   108  	NDPChassisAlteon184                                   NDPChassisType = 89
   109  	NDPChassisAlteonAD4                                   NDPChassisType = 90
   110  	NDPChassisPassport1424L3Switch                        NDPChassisType = 91
   111  	NDPChassisPassport1648L3Switch                        NDPChassisType = 92
   112  	NDPChassisPassport1612L3Switch                        NDPChassisType = 93
   113  	NDPChassisPassport1624L3Switch                        NDPChassisType = 94
   114  	NDPChassisBayStack38024FFiber1000Switch               NDPChassisType = 95
   115  	NDPChassisEthernetRoutingSwitch551024T                NDPChassisType = 96
   116  	NDPChassisEthernetRoutingSwitch551048T                NDPChassisType = 97
   117  	NDPChassisEthernetSwitch47024T                        NDPChassisType = 98
   118  	NDPChassisNortelNetworksWirelessLANAccessPoint2220    NDPChassisType = 99
   119  	NDPChassisPassportRBS2402L3Switch                     NDPChassisType = 100
   120  	NDPChassisAlteonApplicationSwitch2424                 NDPChassisType = 101
   121  	NDPChassisAlteonApplicationSwitch2224                 NDPChassisType = 102
   122  	NDPChassisAlteonApplicationSwitch2208                 NDPChassisType = 103
   123  	NDPChassisAlteonApplicationSwitch2216                 NDPChassisType = 104
   124  	NDPChassisAlteonApplicationSwitch3408                 NDPChassisType = 105
   125  	NDPChassisAlteonApplicationSwitch3416                 NDPChassisType = 106
   126  	NDPChassisNortelNetworksWirelessLANSecuritySwitch2250 NDPChassisType = 107
   127  	NDPChassisEthernetSwitch42548T                        NDPChassisType = 108
   128  	NDPChassisEthernetSwitch42524T                        NDPChassisType = 109
   129  	NDPChassisNortelNetworksWirelessLANAccessPoint2221    NDPChassisType = 110
   130  	NDPChassisNortelMetroEthernetServiceUnit24TSPFswitch  NDPChassisType = 111
   131  	NDPChassisNortelMetroEthernetServiceUnit24TLXDCswitch NDPChassisType = 112
   132  	NDPChassisPassport830010slotchassis                   NDPChassisType = 113
   133  	NDPChassisPassport83006slotchassis                    NDPChassisType = 114
   134  	NDPChassisEthernetRoutingSwitch552024TPWR             NDPChassisType = 115
   135  	NDPChassisEthernetRoutingSwitch552048TPWR             NDPChassisType = 116
   136  	NDPChassisNortelNetworksVPNGateway3050                NDPChassisType = 117
   137  	NDPChassisAlteonSSL31010100                           NDPChassisType = 118
   138  	NDPChassisAlteonSSL31010100Fiber                      NDPChassisType = 119
   139  	NDPChassisAlteonSSL31010100FIPS                       NDPChassisType = 120
   140  	NDPChassisAlteonSSL410101001000                       NDPChassisType = 121
   141  	NDPChassisAlteonSSL410101001000Fiber                  NDPChassisType = 122
   142  	NDPChassisAlteonApplicationSwitch2424SSL              NDPChassisType = 123
   143  	NDPChassisEthernetSwitch32524T                        NDPChassisType = 124
   144  	NDPChassisEthernetSwitch32524G                        NDPChassisType = 125
   145  	NDPChassisNortelNetworksWirelessLANAccessPoint2225    NDPChassisType = 126
   146  	NDPChassisNortelNetworksWirelessLANSecuritySwitch2270 NDPChassisType = 127
   147  	NDPChassis24portEthernetSwitch47024TPWR               NDPChassisType = 128
   148  	NDPChassis48portEthernetSwitch47048TPWR               NDPChassisType = 129
   149  	NDPChassisEthernetRoutingSwitch553024TFD              NDPChassisType = 130
   150  	NDPChassisEthernetSwitch351024T                       NDPChassisType = 131
   151  	NDPChassisNortelMetroEthernetServiceUnit12GACL3Switch NDPChassisType = 132
   152  	NDPChassisNortelMetroEthernetServiceUnit12GDCL3Switch NDPChassisType = 133
   153  	NDPChassisNortelSecureAccessSwitch                    NDPChassisType = 134
   154  	NDPChassisNortelNetworksVPNGateway3070                NDPChassisType = 135
   155  	NDPChassisOPTeraMetro3500                             NDPChassisType = 136
   156  	NDPChassisSMBBES101024T                               NDPChassisType = 137
   157  	NDPChassisSMBBES101048T                               NDPChassisType = 138
   158  	NDPChassisSMBBES102024TPWR                            NDPChassisType = 139
   159  	NDPChassisSMBBES102048TPWR                            NDPChassisType = 140
   160  	NDPChassisSMBBES201024T                               NDPChassisType = 141
   161  	NDPChassisSMBBES201048T                               NDPChassisType = 142
   162  	NDPChassisSMBBES202024TPWR                            NDPChassisType = 143
   163  	NDPChassisSMBBES202048TPWR                            NDPChassisType = 144
   164  	NDPChassisSMBBES11024T                                NDPChassisType = 145
   165  	NDPChassisSMBBES11048T                                NDPChassisType = 146
   166  	NDPChassisSMBBES12024TPWR                             NDPChassisType = 147
   167  	NDPChassisSMBBES12048TPWR                             NDPChassisType = 148
   168  	NDPChassisSMBBES21024T                                NDPChassisType = 149
   169  	NDPChassisSMBBES21048T                                NDPChassisType = 150
   170  	NDPChassisSMBBES22024TPWR                             NDPChassisType = 151
   171  	NDPChassisSMBBES22048TPWR                             NDPChassisType = 152
   172  	NDPChassisOME6500                                     NDPChassisType = 153
   173  	NDPChassisEthernetRoutingSwitch4548GT                 NDPChassisType = 154
   174  	NDPChassisEthernetRoutingSwitch4548GTPWR              NDPChassisType = 155
   175  	NDPChassisEthernetRoutingSwitch4550T                  NDPChassisType = 156
   176  	NDPChassisEthernetRoutingSwitch4550TPWR               NDPChassisType = 157
   177  	NDPChassisEthernetRoutingSwitch4526FX                 NDPChassisType = 158
   178  	NDPChassisEthernetRoutingSwitch250026T                NDPChassisType = 159
   179  	NDPChassisEthernetRoutingSwitch250026TPWR             NDPChassisType = 160
   180  	NDPChassisEthernetRoutingSwitch250050T                NDPChassisType = 161
   181  	NDPChassisEthernetRoutingSwitch250050TPWR             NDPChassisType = 162
   182  )
   183  
   184  type NDPBackplaneType uint8
   185  
   186  // Nortel Backplane Types
   187  const (
   188  	NDPBackplaneOther                                       NDPBackplaneType = 1
   189  	NDPBackplaneEthernet                                    NDPBackplaneType = 2
   190  	NDPBackplaneEthernetTokenring                           NDPBackplaneType = 3
   191  	NDPBackplaneEthernetFDDI                                NDPBackplaneType = 4
   192  	NDPBackplaneEthernetTokenringFDDI                       NDPBackplaneType = 5
   193  	NDPBackplaneEthernetTokenringRedundantPower             NDPBackplaneType = 6
   194  	NDPBackplaneEthernetTokenringFDDIRedundantPower         NDPBackplaneType = 7
   195  	NDPBackplaneTokenRing                                   NDPBackplaneType = 8
   196  	NDPBackplaneEthernetTokenringFastEthernet               NDPBackplaneType = 9
   197  	NDPBackplaneEthernetFastEthernet                        NDPBackplaneType = 10
   198  	NDPBackplaneEthernetTokenringFastEthernetRedundantPower NDPBackplaneType = 11
   199  	NDPBackplaneEthernetFastEthernetGigabitEthernet         NDPBackplaneType = 12
   200  )
   201  
   202  type NDPState uint8
   203  
   204  // Device State
   205  const (
   206  	NDPStateTopology  NDPState = 1
   207  	NDPStateHeartbeat NDPState = 2
   208  	NDPStateNew       NDPState = 3
   209  )
   210  
   211  // NortelDiscovery is a packet layer containing the Nortel Discovery Protocol.
   212  type NortelDiscovery struct {
   213  	BaseLayer
   214  	IPAddress net.IP
   215  	SegmentID []byte
   216  	Chassis   NDPChassisType
   217  	Backplane NDPBackplaneType
   218  	State     NDPState
   219  	NumLinks  uint8
   220  }
   221  
   222  // LayerType returns gopacket.LayerTypeNortelDiscovery.
   223  func (c *NortelDiscovery) LayerType() gopacket.LayerType {
   224  	return LayerTypeNortelDiscovery
   225  }
   226  
   227  func decodeNortelDiscovery(data []byte, p gopacket.PacketBuilder) error {
   228  	c := &NortelDiscovery{}
   229  	if len(data) < 11 {
   230  		return fmt.Errorf("Invalid NortelDiscovery packet length %d", len(data))
   231  	}
   232  	c.IPAddress = data[0:4]
   233  	c.SegmentID = data[4:7]
   234  	c.Chassis = NDPChassisType(data[7])
   235  	c.Backplane = NDPBackplaneType(data[8])
   236  	c.State = NDPState(data[9])
   237  	c.NumLinks = uint8(data[10])
   238  	p.AddLayer(c)
   239  	return nil
   240  }
   241  
   242  func (t NDPChassisType) String() (s string) {
   243  	switch t {
   244  	case NDPChassisother:
   245  		s = "other"
   246  	case NDPChassis3000:
   247  		s = "3000"
   248  	case NDPChassis3030:
   249  		s = "3030"
   250  	case NDPChassis2310:
   251  		s = "2310"
   252  	case NDPChassis2810:
   253  		s = "2810"
   254  	case NDPChassis2912:
   255  		s = "2912"
   256  	case NDPChassis2914:
   257  		s = "2914"
   258  	case NDPChassis271x:
   259  		s = "271x"
   260  	case NDPChassis2813:
   261  		s = "2813"
   262  	case NDPChassis2814:
   263  		s = "2814"
   264  	case NDPChassis2915:
   265  		s = "2915"
   266  	case NDPChassis5000:
   267  		s = "5000"
   268  	case NDPChassis2813SA:
   269  		s = "2813SA"
   270  	case NDPChassis2814SA:
   271  		s = "2814SA"
   272  	case NDPChassis810M:
   273  		s = "810M"
   274  	case NDPChassisEthercell:
   275  		s = "Ethercell"
   276  	case NDPChassis5005:
   277  		s = "5005"
   278  	case NDPChassisAlcatelEWC:
   279  		s = "Alcatel Ethernet workgroup conc."
   280  	case NDPChassis2715SA:
   281  		s = "2715SA"
   282  	case NDPChassis2486:
   283  		s = "2486"
   284  	case NDPChassis28000series:
   285  		s = "28000 series"
   286  	case NDPChassis23000series:
   287  		s = "23000 series"
   288  	case NDPChassis5DN00xseries:
   289  		s = "5DN00x series"
   290  	case NDPChassisBayStackEthernet:
   291  		s = "BayStack Ethernet"
   292  	case NDPChassis23100series:
   293  		s = "23100 series"
   294  	case NDPChassis100BaseTHub:
   295  		s = "100Base-T Hub"
   296  	case NDPChassis3000FastEthernet:
   297  		s = "3000 Fast Ethernet"
   298  	case NDPChassisOrionSwitch:
   299  		s = "Orion switch"
   300  	case NDPChassisDDS:
   301  		s = "DDS"
   302  	case NDPChassisCentillion6slot:
   303  		s = "Centillion (6 slot)"
   304  	case NDPChassisCentillion12slot:
   305  		s = "Centillion (12 slot)"
   306  	case NDPChassisCentillion1slot:
   307  		s = "Centillion (1 slot)"
   308  	case NDPChassisBayStack301:
   309  		s = "BayStack 301"
   310  	case NDPChassisBayStackTokenRingHub:
   311  		s = "BayStack TokenRing Hub"
   312  	case NDPChassisFVCMultimediaSwitch:
   313  		s = "FVC Multimedia Switch"
   314  	case NDPChassisSwitchNode:
   315  		s = "Switch Node"
   316  	case NDPChassisBayStack302Switch:
   317  		s = "BayStack 302 Switch"
   318  	case NDPChassisBayStack350Switch:
   319  		s = "BayStack 350 Switch"
   320  	case NDPChassisBayStack150EthernetHub:
   321  		s = "BayStack 150 Ethernet Hub"
   322  	case NDPChassisCentillion50NSwitch:
   323  		s = "Centillion 50N switch"
   324  	case NDPChassisCentillion50TSwitch:
   325  		s = "Centillion 50T switch"
   326  	case NDPChassisBayStack303304Switches:
   327  		s = "BayStack 303 and 304 Switches"
   328  	case NDPChassisBayStack200EthernetHub:
   329  		s = "BayStack 200 Ethernet Hub"
   330  	case NDPChassisBayStack25010100EthernetHub:
   331  		s = "BayStack 250 10/100 Ethernet Hub"
   332  	case NDPChassisBayStack450101001000Switches:
   333  		s = "BayStack 450 10/100/1000 Switches"
   334  	case NDPChassisBayStack41010100Switches:
   335  		s = "BayStack 410 10/100 Switches"
   336  	case NDPChassisPassport1200L3Switch:
   337  		s = "Passport 1200 L3 Switch"
   338  	case NDPChassisPassport1250L3Switch:
   339  		s = "Passport 1250 L3 Switch"
   340  	case NDPChassisPassport1100L3Switch:
   341  		s = "Passport 1100 L3 Switch"
   342  	case NDPChassisPassport1150L3Switch:
   343  		s = "Passport 1150 L3 Switch"
   344  	case NDPChassisPassport1050L3Switch:
   345  		s = "Passport 1050 L3 Switch"
   346  	case NDPChassisPassport1051L3Switch:
   347  		s = "Passport 1051 L3 Switch"
   348  	case NDPChassisPassport8610L3Switch:
   349  		s = "Passport 8610 L3 Switch"
   350  	case NDPChassisPassport8606L3Switch:
   351  		s = "Passport 8606 L3 Switch"
   352  	case NDPChassisPassport8010:
   353  		s = "Passport 8010"
   354  	case NDPChassisPassport8006:
   355  		s = "Passport 8006"
   356  	case NDPChassisBayStack670wirelessaccesspoint:
   357  		s = "BayStack 670 wireless access point"
   358  	case NDPChassisPassport740:
   359  		s = "Passport 740"
   360  	case NDPChassisPassport750:
   361  		s = "Passport 750"
   362  	case NDPChassisPassport790:
   363  		s = "Passport 790"
   364  	case NDPChassisBusinessPolicySwitch200010100Switches:
   365  		s = "Business Policy Switch 2000 10/100 Switches"
   366  	case NDPChassisPassport8110L2Switch:
   367  		s = "Passport 8110 L2 Switch"
   368  	case NDPChassisPassport8106L2Switch:
   369  		s = "Passport 8106 L2 Switch"
   370  	case NDPChassisBayStack3580GigSwitch:
   371  		s = "BayStack 3580 Gig Switch"
   372  	case NDPChassisBayStack10PowerSupplyUnit:
   373  		s = "BayStack 10 Power Supply Unit"
   374  	case NDPChassisBayStack42010100Switch:
   375  		s = "BayStack 420 10/100 Switch"
   376  	case NDPChassisOPTeraMetro1200EthernetServiceModule:
   377  		s = "OPTera Metro 1200 Ethernet Service Module"
   378  	case NDPChassisOPTera8010co:
   379  		s = "OPTera 8010co"
   380  	case NDPChassisOPTera8610coL3Switch:
   381  		s = "OPTera 8610co L3 switch"
   382  	case NDPChassisOPTera8110coL2Switch:
   383  		s = "OPTera 8110co L2 switch"
   384  	case NDPChassisOPTera8003:
   385  		s = "OPTera 8003"
   386  	case NDPChassisOPTera8603L3Switch:
   387  		s = "OPTera 8603 L3 switch"
   388  	case NDPChassisOPTera8103L2Switch:
   389  		s = "OPTera 8103 L2 switch"
   390  	case NDPChassisBayStack380101001000Switch:
   391  		s = "BayStack 380 10/100/1000 Switch"
   392  	case NDPChassisEthernetSwitch47048T:
   393  		s = "Ethernet Switch 470-48T"
   394  	case NDPChassisOPTeraMetro1450EthernetServiceModule:
   395  		s = "OPTera Metro 1450 Ethernet Service Module"
   396  	case NDPChassisOPTeraMetro1400EthernetServiceModule:
   397  		s = "OPTera Metro 1400 Ethernet Service Module"
   398  	case NDPChassisAlteonSwitchFamily:
   399  		s = "Alteon Switch Family"
   400  	case NDPChassisEthernetSwitch46024TPWR:
   401  		s = "Ethernet Switch 460-24T-PWR"
   402  	case NDPChassisOPTeraMetro8010OPML2Switch:
   403  		s = "OPTera Metro 8010 OPM L2 Switch"
   404  	case NDPChassisOPTeraMetro8010coOPML2Switch:
   405  		s = "OPTera Metro 8010co OPM L2 Switch"
   406  	case NDPChassisOPTeraMetro8006OPML2Switch:
   407  		s = "OPTera Metro 8006 OPM L2 Switch"
   408  	case NDPChassisOPTeraMetro8003OPML2Switch:
   409  		s = "OPTera Metro 8003 OPM L2 Switch"
   410  	case NDPChassisAlteon180e:
   411  		s = "Alteon 180e"
   412  	case NDPChassisAlteonAD3:
   413  		s = "Alteon AD3"
   414  	case NDPChassisAlteon184:
   415  		s = "Alteon 184"
   416  	case NDPChassisAlteonAD4:
   417  		s = "Alteon AD4"
   418  	case NDPChassisPassport1424L3Switch:
   419  		s = "Passport 1424 L3 switch"
   420  	case NDPChassisPassport1648L3Switch:
   421  		s = "Passport 1648 L3 switch"
   422  	case NDPChassisPassport1612L3Switch:
   423  		s = "Passport 1612 L3 switch"
   424  	case NDPChassisPassport1624L3Switch:
   425  		s = "Passport 1624 L3 switch"
   426  	case NDPChassisBayStack38024FFiber1000Switch:
   427  		s = "BayStack 380-24F Fiber 1000 Switch"
   428  	case NDPChassisEthernetRoutingSwitch551024T:
   429  		s = "Ethernet Routing Switch 5510-24T"
   430  	case NDPChassisEthernetRoutingSwitch551048T:
   431  		s = "Ethernet Routing Switch 5510-48T"
   432  	case NDPChassisEthernetSwitch47024T:
   433  		s = "Ethernet Switch 470-24T"
   434  	case NDPChassisNortelNetworksWirelessLANAccessPoint2220:
   435  		s = "Nortel Networks Wireless LAN Access Point 2220"
   436  	case NDPChassisPassportRBS2402L3Switch:
   437  		s = "Passport RBS 2402 L3 switch"
   438  	case NDPChassisAlteonApplicationSwitch2424:
   439  		s = "Alteon Application Switch 2424"
   440  	case NDPChassisAlteonApplicationSwitch2224:
   441  		s = "Alteon Application Switch 2224"
   442  	case NDPChassisAlteonApplicationSwitch2208:
   443  		s = "Alteon Application Switch 2208"
   444  	case NDPChassisAlteonApplicationSwitch2216:
   445  		s = "Alteon Application Switch 2216"
   446  	case NDPChassisAlteonApplicationSwitch3408:
   447  		s = "Alteon Application Switch 3408"
   448  	case NDPChassisAlteonApplicationSwitch3416:
   449  		s = "Alteon Application Switch 3416"
   450  	case NDPChassisNortelNetworksWirelessLANSecuritySwitch2250:
   451  		s = "Nortel Networks Wireless LAN SecuritySwitch 2250"
   452  	case NDPChassisEthernetSwitch42548T:
   453  		s = "Ethernet Switch 425-48T"
   454  	case NDPChassisEthernetSwitch42524T:
   455  		s = "Ethernet Switch 425-24T"
   456  	case NDPChassisNortelNetworksWirelessLANAccessPoint2221:
   457  		s = "Nortel Networks Wireless LAN Access Point 2221"
   458  	case NDPChassisNortelMetroEthernetServiceUnit24TSPFswitch:
   459  		s = "Nortel Metro Ethernet Service Unit 24-T SPF switch"
   460  	case NDPChassisNortelMetroEthernetServiceUnit24TLXDCswitch:
   461  		s = " Nortel Metro Ethernet Service Unit 24-T LX DC switch"
   462  	case NDPChassisPassport830010slotchassis:
   463  		s = "Passport 8300 10-slot chassis"
   464  	case NDPChassisPassport83006slotchassis:
   465  		s = "Passport 8300 6-slot chassis"
   466  	case NDPChassisEthernetRoutingSwitch552024TPWR:
   467  		s = "Ethernet Routing Switch 5520-24T-PWR"
   468  	case NDPChassisEthernetRoutingSwitch552048TPWR:
   469  		s = "Ethernet Routing Switch 5520-48T-PWR"
   470  	case NDPChassisNortelNetworksVPNGateway3050:
   471  		s = "Nortel Networks VPN Gateway 3050"
   472  	case NDPChassisAlteonSSL31010100:
   473  		s = "Alteon SSL 310 10/100"
   474  	case NDPChassisAlteonSSL31010100Fiber:
   475  		s = "Alteon SSL 310 10/100 Fiber"
   476  	case NDPChassisAlteonSSL31010100FIPS:
   477  		s = "Alteon SSL 310 10/100 FIPS"
   478  	case NDPChassisAlteonSSL410101001000:
   479  		s = "Alteon SSL 410 10/100/1000"
   480  	case NDPChassisAlteonSSL410101001000Fiber:
   481  		s = "Alteon SSL 410 10/100/1000 Fiber"
   482  	case NDPChassisAlteonApplicationSwitch2424SSL:
   483  		s = "Alteon Application Switch 2424-SSL"
   484  	case NDPChassisEthernetSwitch32524T:
   485  		s = "Ethernet Switch 325-24T"
   486  	case NDPChassisEthernetSwitch32524G:
   487  		s = "Ethernet Switch 325-24G"
   488  	case NDPChassisNortelNetworksWirelessLANAccessPoint2225:
   489  		s = "Nortel Networks Wireless LAN Access Point 2225"
   490  	case NDPChassisNortelNetworksWirelessLANSecuritySwitch2270:
   491  		s = "Nortel Networks Wireless LAN SecuritySwitch 2270"
   492  	case NDPChassis24portEthernetSwitch47024TPWR:
   493  		s = "24-port Ethernet Switch 470-24T-PWR"
   494  	case NDPChassis48portEthernetSwitch47048TPWR:
   495  		s = "48-port Ethernet Switch 470-48T-PWR"
   496  	case NDPChassisEthernetRoutingSwitch553024TFD:
   497  		s = "Ethernet Routing Switch 5530-24TFD"
   498  	case NDPChassisEthernetSwitch351024T:
   499  		s = "Ethernet Switch 3510-24T"
   500  	case NDPChassisNortelMetroEthernetServiceUnit12GACL3Switch:
   501  		s = "Nortel Metro Ethernet Service Unit 12G AC L3 switch"
   502  	case NDPChassisNortelMetroEthernetServiceUnit12GDCL3Switch:
   503  		s = "Nortel Metro Ethernet Service Unit 12G DC L3 switch"
   504  	case NDPChassisNortelSecureAccessSwitch:
   505  		s = "Nortel Secure Access Switch"
   506  	case NDPChassisNortelNetworksVPNGateway3070:
   507  		s = "Nortel Networks VPN Gateway 3070"
   508  	case NDPChassisOPTeraMetro3500:
   509  		s = "OPTera Metro 3500"
   510  	case NDPChassisSMBBES101024T:
   511  		s = "SMB BES 1010 24T"
   512  	case NDPChassisSMBBES101048T:
   513  		s = "SMB BES 1010 48T"
   514  	case NDPChassisSMBBES102024TPWR:
   515  		s = "SMB BES 1020 24T PWR"
   516  	case NDPChassisSMBBES102048TPWR:
   517  		s = "SMB BES 1020 48T PWR"
   518  	case NDPChassisSMBBES201024T:
   519  		s = "SMB BES 2010 24T"
   520  	case NDPChassisSMBBES201048T:
   521  		s = "SMB BES 2010 48T"
   522  	case NDPChassisSMBBES202024TPWR:
   523  		s = "SMB BES 2020 24T PWR"
   524  	case NDPChassisSMBBES202048TPWR:
   525  		s = "SMB BES 2020 48T PWR"
   526  	case NDPChassisSMBBES11024T:
   527  		s = "SMB BES 110 24T"
   528  	case NDPChassisSMBBES11048T:
   529  		s = "SMB BES 110 48T"
   530  	case NDPChassisSMBBES12024TPWR:
   531  		s = "SMB BES 120 24T PWR"
   532  	case NDPChassisSMBBES12048TPWR:
   533  		s = "SMB BES 120 48T PWR"
   534  	case NDPChassisSMBBES21024T:
   535  		s = "SMB BES 210 24T"
   536  	case NDPChassisSMBBES21048T:
   537  		s = "SMB BES 210 48T"
   538  	case NDPChassisSMBBES22024TPWR:
   539  		s = "SMB BES 220 24T PWR"
   540  	case NDPChassisSMBBES22048TPWR:
   541  		s = "SMB BES 220 48T PWR"
   542  	case NDPChassisOME6500:
   543  		s = "OME 6500"
   544  	case NDPChassisEthernetRoutingSwitch4548GT:
   545  		s = "Ethernet Routing Switch 4548GT"
   546  	case NDPChassisEthernetRoutingSwitch4548GTPWR:
   547  		s = "Ethernet Routing Switch 4548GT-PWR"
   548  	case NDPChassisEthernetRoutingSwitch4550T:
   549  		s = "Ethernet Routing Switch 4550T"
   550  	case NDPChassisEthernetRoutingSwitch4550TPWR:
   551  		s = "Ethernet Routing Switch 4550T-PWR"
   552  	case NDPChassisEthernetRoutingSwitch4526FX:
   553  		s = "Ethernet Routing Switch 4526FX"
   554  	case NDPChassisEthernetRoutingSwitch250026T:
   555  		s = "Ethernet Routing Switch 2500-26T"
   556  	case NDPChassisEthernetRoutingSwitch250026TPWR:
   557  		s = "Ethernet Routing Switch 2500-26T-PWR"
   558  	case NDPChassisEthernetRoutingSwitch250050T:
   559  		s = "Ethernet Routing Switch 2500-50T"
   560  	case NDPChassisEthernetRoutingSwitch250050TPWR:
   561  		s = "Ethernet Routing Switch 2500-50T-PWR"
   562  	default:
   563  		s = "Unknown"
   564  	}
   565  	return
   566  }
   567  
   568  func (t NDPBackplaneType) String() (s string) {
   569  	switch t {
   570  	case NDPBackplaneOther:
   571  		s = "Other"
   572  	case NDPBackplaneEthernet:
   573  		s = "Ethernet"
   574  	case NDPBackplaneEthernetTokenring:
   575  		s = "Ethernet and Tokenring"
   576  	case NDPBackplaneEthernetFDDI:
   577  		s = "Ethernet and FDDI"
   578  	case NDPBackplaneEthernetTokenringFDDI:
   579  		s = "Ethernet, Tokenring and FDDI"
   580  	case NDPBackplaneEthernetTokenringRedundantPower:
   581  		s = "Ethernet and Tokenring with redundant power"
   582  	case NDPBackplaneEthernetTokenringFDDIRedundantPower:
   583  		s = "Ethernet, Tokenring, FDDI with redundant power"
   584  	case NDPBackplaneTokenRing:
   585  		s = "Token Ring"
   586  	case NDPBackplaneEthernetTokenringFastEthernet:
   587  		s = "Ethernet, Tokenring and Fast Ethernet"
   588  	case NDPBackplaneEthernetFastEthernet:
   589  		s = "Ethernet and Fast Ethernet"
   590  	case NDPBackplaneEthernetTokenringFastEthernetRedundantPower:
   591  		s = "Ethernet, Tokenring, Fast Ethernet with redundant power"
   592  	case NDPBackplaneEthernetFastEthernetGigabitEthernet:
   593  		s = "Ethernet, Fast Ethernet and Gigabit Ethernet"
   594  	default:
   595  		s = "Unknown"
   596  	}
   597  	return
   598  }
   599  
   600  func (t NDPState) String() (s string) {
   601  	switch t {
   602  	case NDPStateTopology:
   603  		s = "Topology Change"
   604  	case NDPStateHeartbeat:
   605  		s = "Heartbeat"
   606  	case NDPStateNew:
   607  		s = "New"
   608  	default:
   609  		s = "Unknown"
   610  	}
   611  	return
   612  }