-
Notifications
You must be signed in to change notification settings - Fork 5
/
onu-g.go
150 lines (143 loc) · 6.77 KB
/
onu-g.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/*
* Copyright (c) 2018 - present. Boling Consulting Solutions (bcsw.net)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* NOTE: This file was generated, manual edits will be overwritten!
*
* Generated by 'goCodeGenerator.py':
* https://github.com/cboling/OMCI-parser/README.md
*/
package generated
import "github.com/deckarep/golang-set"
// OnuGClassID is the 16-bit ID for the OMCI
// Managed entity ONU-G
const OnuGClassID ClassID = ClassID(256)
var onugBME *ManagedEntityDefinition
// OnuG (class ID #256)
// This ME represents the ONU as equipment. The ONU automatically creates an instance of this ME.
// It assigns values to read-only attributes according to data within the ONU itself.
//
// This ME has evolved from the ONT-G of [ITUT G.984.4].
//
// Relationships
// In ITU-T GTC based PON applications, all other MEs in this Recommendation are related directly
// or indirectly to the ONU-G entity.
//
// Attributes
// Managed Entity Id
// Managed entity ID: This attribute uniquely identifies each instance of this ME. There is only
// one instance, number 0. (R) (mandatory) (2-bytes)
//
// Vendor Id
// Vendor ID: This attribute identifies the vendor of the ONU. It is the same as the four most
// significant bytes of the ONU serial number as specified in the respective transmission
// convergence (TC) layer specification. (R) (mandatory) (4-bytes)
//
// Version
// Version: This attribute identifies the version of the ONU as defined by the vendor. The
// character value 0 indicates that version information is not available or applicable. (R)
// (mandatory) (14-bytes)
//
// Serial Number
// Serial number: The serial number is unique for each ONU. It is defined in the respective TC
// layer specification and contains the vendor ID and version number. The first four bytes are an
// ASCII-encoded four-letter vendor ID. The second four bytes are a binary encoded serial number,
// under the control of the ONU vendor. (R) (mandatory) (8-bytes)
//
// Traffic Management Option
// Upon ME instantiation, the ONU sets this attribute to the value that describes its
// implementation. The OLT must adapt its model to conform to the ONU's selection. (R) (mandatory)
// (1-byte)
//
// Deprecated
// Deprecated: This attribute is not used. If it is present, it should be set to 0. (R) (optional)
// (1-byte)
//
// Battery Backup
// Battery backup: This Boolean attribute controls whether the ONU performs backup battery
// monitoring (assuming it is capable of doing so). False disables battery alarm monitoring; true
// enables battery alarm monitoring. (R,-W) (mandatory) (1-byte)
//
// Administrative State
// Administrative state: This attribute locks (1) and unlocks (0) the functions performed by the
// ONU as an entirety. Administrative state is further described in clause A.1.6. (R,-W)
// (mandatory) (1-byte)
//
// Operational State
// Operational state: This attribute reports whether the ME is currently capable of performing its
// function. Valid values are enabled (0) and disabled (1). (R) (optional) (1-byte)
//
// Onu Survival Time
// ONU survival time: This attribute indicates the minimum guaranteed time in milliseconds between
// the loss of external power and the silence of the ONU. This does not include survival time
// attributable to a backup battery. The value zero implies that the actual time is not known. (R)
// (optional) (1-byte)
//
// Logical Onu Id
// Logical ONU ID: This attribute provides a way for the ONU to identify itself. It is a text
// string, null terminated if it is shorter than 24 bytes, with a null default value. The mechanism
// for creation or modification of this information is beyond the scope of this Recommendation, but
// might include, for example, a web page displayed to a user. (R) (optional) (24 bytes)
//
// Logical Password
// Logical password: This attribute provides a way for the ONU to submit authentication
// credentials. It is a text string, null terminated if it is shorter than 12 bytes, with a null
// default value. The mechanism for creation or modification of this information is beyond the
// scope of this Recommendation. (R) (optional) (12-bytes)
//
// Credentials Status
// Other values are reserved.
//
// Extended Tc_Layer Options
// (R) (optional) (2-bytes)
//
type OnuG struct {
ManagedEntityDefinition
Attributes AttributeValueMap
}
func init() {
onugBME = &ManagedEntityDefinition{
Name: "OnuG",
ClassID: 256,
MessageTypes: mapset.NewSetWith(
Get,
Reboot,
Set,
SynchronizeTime,
Test,
),
AllowedAttributeMask: 0XFFF8,
AttributeDefinitions: AttributeDefinitionMap{
0: Uint16Field("ManagedEntityId", 0, mapset.NewSetWith(Read), false, false, false, false, 0),
1: Uint32Field("VendorId", 0, mapset.NewSetWith(Read), false, false, false, false, 1),
2: MultiByteField("Version", 14, nil, mapset.NewSetWith(Read), false, false, false, false, 2),
3: Uint64Field("SerialNumber", 0, mapset.NewSetWith(Read), false, false, false, false, 3),
4: ByteField("TrafficManagementOption", 0, mapset.NewSetWith(Read), false, false, false, false, 4),
5: ByteField("Deprecated", 0, mapset.NewSetWith(Read), false, false, true, true, 5),
6: ByteField("BatteryBackup", 0, mapset.NewSetWith(Read, Write), false, false, false, false, 6),
7: ByteField("AdministrativeState", 0, mapset.NewSetWith(Read, Write), false, false, false, false, 7),
8: ByteField("OperationalState", 0, mapset.NewSetWith(Read), false, false, true, false, 8),
9: ByteField("OnuSurvivalTime", 0, mapset.NewSetWith(Read), false, false, true, false, 9),
10: MultiByteField("LogicalOnuId", 24, nil, mapset.NewSetWith(Read), false, false, true, false, 10),
11: MultiByteField("LogicalPassword", 12, nil, mapset.NewSetWith(Read), false, false, true, false, 11),
12: ByteField("CredentialsStatus", 0, mapset.NewSetWith(Read, Write), false, false, true, false, 12),
13: Uint16Field("ExtendedTcLayerOptions", 0, mapset.NewSetWith(Read), false, false, true, false, 13),
},
}
}
// NewOnuG (class ID 256 creates the basic
// Managed Entity definition that is used to validate an ME of this type that
// is received from the wire, about to be sent on the wire.
func NewOnuG(params ...ParamData) (*ManagedEntity, OmciErrors) {
return NewManagedEntity(*onugBME, params...)
}