| /* |
| * Copyright (c) 2018 - present. Boling Consulting Solutions (bcsw.net) |
| * Copyright 2020-present Open Networking Foundation |
| |
| * 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(256) // 0x0100 |
| |
| var onugBME *ManagedEntityDefinition |
| |
| // OnuG (Class ID: #256 / 0x0100) |
| // 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 |
| // This attribute uniquely identifies each instance of this ME. There is only one instance, number |
| // 0. (R) (mandatory) (2-bytes) |
| // |
| // 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 |
| // 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 |
| // 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 |
| // This attribute identifies the upstream traffic management function implemented in the ONU. There |
| // are three options: |
| // |
| // 0 Priority controlled and flexibly scheduled upstream traffic. The traffic scheduler and |
| // priority queue mechanism are used for upstream traffic. |
| // |
| // 1 Rate controlled upstream traffic. The maximum upstream traffic of each individual connection |
| // is guaranteed by shaping. |
| // |
| // 2 Priority and rate controlled. The traffic scheduler and priority queue mechanism are used for |
| // upstream traffic. The maximum upstream traffic of each individual connection is guaranteed by |
| // shaping. |
| // |
| // For a further explanation, see Appendix II. |
| // |
| // Downstream priority queues are managed via the GEM port network CTP ME. |
| // |
| // 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 |
| // This attribute is not used. If it is present, it should be set to 0. (R) (optional) (1-byte) |
| // |
| // 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 |
| // 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 |
| // 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 |
| // 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 |
| // 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 |
| // 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 |
| // This attribute permits the OLT to signal to the ONU whether its credentials are valid or not. |
| // The behaviour of the ONU is not specified, but might, for example, include displaying an error |
| // screen to the user. (R, W) (optional) (1-byte) |
| // |
| // Values include: |
| // |
| // 0 Initial state, status indeterminate |
| // |
| // 1 Successful authentication |
| // |
| // 2 Logical ONU ID (LOID) error |
| // |
| // 3 Password error |
| // |
| // 4 Duplicate LOID |
| // |
| // Other values are reserved. |
| // |
| // Extended Tc_Layer Options |
| // Extended TC-layer options: This attribute is meaningful in ITU-T G.984 systems only. It is a bit |
| // map that defines whether the ONU supports (1) or does not support (0) various optional TC-layer |
| // capabilities of [ITU-T G.984.3]. Bits are assigned as follows. |
| // |
| // Bit Meaning |
| // |
| // 1 (LSB) Annex C of [ITU-T G.984.3], PON-ID maintenance. |
| // |
| // 2 Annex D of [ITU-T G.984.3], PLOAM channel enhancements: swift_POPUP and Ranging_adjustment |
| // messages. |
| // |
| // 3..16 Reserved |
| // |
| // (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", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0), |
| 1: MultiByteField("VendorId", StringAttributeType, 0x8000, 4, toOctets("ICAgIA=="), mapset.NewSetWith(Read), false, false, false, 1), |
| 2: MultiByteField("Version", StringAttributeType, 0x4000, 14, toOctets("MAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read), false, false, false, 2), |
| 3: MultiByteField("SerialNumber", OctetsAttributeType, 0x2000, 8, toOctets("AAAAAAAAAAA="), mapset.NewSetWith(Read), false, false, false, 3), |
| 4: ByteField("TrafficManagementOption", EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4), |
| 5: ByteField("Deprecated", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, true, 5), |
| 6: ByteField("BatteryBackup", EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6), |
| 7: ByteField("AdministrativeState", EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7), |
| 8: ByteField("OperationalState", EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8), |
| 9: ByteField("OnuSurvivalTime", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9), |
| 10: MultiByteField("LogicalOnuId", OctetsAttributeType, 0x0040, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read), false, true, false, 10), |
| 11: MultiByteField("LogicalPassword", OctetsAttributeType, 0x0020, 12, toOctets("AAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read), false, true, false, 11), |
| 12: ByteField("CredentialsStatus", EnumerationAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12), |
| 13: Uint16Field("ExtendedTcLayerOptions", BitFieldAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13), |
| }, |
| Access: CreatedByOnu, |
| Support: UnknownSupport, |
| } |
| } |
| |
| // NewOnuG (class ID 256) creates the basic |
| // Managed Entity definition that is used to validate an ME of this type that |
| // is received from or transmitted to the OMCC. |
| func NewOnuG(params ...ParamData) (*ManagedEntity, OmciErrors) { |
| return NewManagedEntity(*onugBME, params...) |
| } |