blob: 442c23e6d0129ff602c94af2774ea00d49c5c027 [file] [log] [blame]
/*
* 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"
// Vdsl2LineInventoryAndStatusDataPart3ClassID is the 16-bit ID for the OMCI
// Managed entity VDSL2 line inventory and status data part 3
const Vdsl2LineInventoryAndStatusDataPart3ClassID = ClassID(170) // 0x00aa
var vdsl2lineinventoryandstatusdatapart3BME *ManagedEntityDefinition
// Vdsl2LineInventoryAndStatusDataPart3 (Class ID: #170 / 0x00aa)
// This ME extends the other xDSL line inventory and status data MEs with attributes specific to
// VDSL2. This ME contains per-band attributes for both directions. These same attributes are
// defined in the xDSL line inventory and status data part 2 ME, but only for a single band. [ITUT
// G.993.2] allows for VDSL2 to have as many as five bands upstream and as many as five bands
// downstream.
//
// Relationships
// This is one of the status data MEs associated with an xDSL UNI. It is required only if VDSL2 is
// supported by the PPTP. The ONU automatically creates or deletes an instance of this ME upon
// creation or deletion of a PPTP xDSL UNI part 1 that supports these attributes.
//
// Attributes
// Managed Entity Id
// This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
// implicitly linked to an instance of the PPTP xDSL UNI part 1 ME. (R) (mandatory) (2-bytes)
//
// Upstream Bands Count
// This attribute reports the number of upstream bands. It can be used to filter the upstream
// attributes. All upstream attributes are arrays of per-band entries, of which the first upstream
// bands count are populated. The contents of the arrays for unused frequency bands are
// unspecified. The original attributes were allocated for as many as four upstream bands, US0, 1,
// 2, 3; optional extended attributes have been added to accommodate the possibility that five
// upstream bands may be needed. (R) (mandatory) (1-byte)
//
// Downstream Bands Count
// This attribute reports the number of downstream bands. It can be used to filter the downstream
// attributes. All downstream attributes are arrays of per-band entries, of which the first
// downstream bands count are populated. The contents of the arrays for unused frequency bands are
// unspecified. The original attributes were allocated for as many as three downstream bands, DS1,
// 2, 3; optional extended attributes have been added to accommodate the possibility that five
// downstream bands may be needed. (R) (mandatory) (1-byte)
//
// Downstream Line Attenuation Per Band
// The LATNds attribute is defined per usable band. It is the squared magnitude of the channel
// characteristics function, H(f), averaged over this band, and measured during loop diagnostic
// mode and initialization. The exact definition is included in the relevant xDSL Recommendation.
// The upstream line attenuation per band ranges from 0 (0.0-dB) to 1270 (+127.0-dB). The special
// value 0xFFFF indicates that the line attenuation per band is out of the range to be represented.
// (R) (mandatory) (3-bands * 2-bytes-=-6-bytes)
//
// Upstream Line Attenuation Per Band
// The LATNus attribute is defined per usable band. It is the squared magnitude of the channel
// characteristics function H(f) averaged over this band, and measured during loop diagnostic mode
// and initialization. The exact definition is included in the relevant xDSL Recommendation. The
// upstream line attenuation per band ranges from 0 (0.0-dB) to 1270 (+127.0-dB). The special value
// 0xFFFF indicates that line attenuation per band is out of range to be represented. (R)
// (mandatory) (4-bands * 2-bytes-=-8-bytes)
//
// Downstream Signal Attenuation Per Band
// The SATNds attribute is defined per usable band. It is the measured difference in the total
// power transmitted in this band by the xTUC and the total power received by the xTUR during loop
// diagnostic mode, initialization and showtime. The exact definition is included in the relevant
// xDSL Recommendation. The downstream signal attenuation per band ranges from 0 (0.0-dB) to 1270
// (+127.0-dB). The special value 0xFFFF indicates that the signal attenuation per band is out of
// the range to be represented. (R) (mandatory) (3 bands * 2-bytes-=-6-bytes)
//
// NOTE 1 - During showtime, only a subset of the subcarriers may be transmitted by the xTU-C, as
// compared to loop diagnostic mode and initialization. Therefore, the downstream signal
// attenuation value during showtime may be significantly lower than the downstream signal
// attenuation value during loop diagnostic mode and initialization.
//
// Upstream Signal Attenuation Per Band
// The SATNus attribute is defined per usable band. It is the measured difference in decibels in
// the total power transmitted in this band by the xTUR and the total power received in this band
// by the xTUC during loop diagnostic mode, initialization and showtime. The exact definition is
// included in the relevant xDSL Recommendation. The upstream signal attenuation per band ranges
// from 0 (0.0-dB) to 1270 (+127.0-dB). The special value 0xFFFF indicates the signal attenuation
// per band is out of range to be represented. (R) (mandatory) (4 bands * 2-bytes-= 8-bytes)
//
// NOTE 2 - During showtime, only a subset of the subcarriers may be transmitted by the xTU-R, as
// compared to loop diagnostic mode and initialization. Therefore, the upstream signal attenuation
// value during showtime may be significantly lower than the upstream signal attenuation value
// during loop diagnostic mode and initialization.
//
// Downstream Snr Margin Per Band
// The SNRMpbds attribute is defined per usable band. The downstream SNR margin per band is the
// maximum increase of noise power received at the xTU-R, such that the BER requirements are met
// for all downstream bearer channels. Each array value ranges from 0 (-64.0-dB) to 1270
// (+63.0-dB). The special value 0xFFFF indicates that the attribute is out of range to be
// represented. (R) (mandatory) (3 bands * 2-bytes-=-6-bytes)
//
// Upstream Snr Margin Per Band
// The SNRMpbus attribute is defined per usable band. The upstream SNR margin per band is the
// maximum increase of noise power received at the xTU-C, such that the BER requirements are met
// for all upstream bearer channels. Each array value ranges from 0 (-64.0-dB) to 1270 (+63.0-dB).
// The special value 0xFFFF indicates that the attribute is out of range to be represented. (R)
// (mandatory) (4 bands * 2-bytes-= 8-bytes)
//
// Downstream Line Attenuation Extension
// This attribute extends LATNds when more than three downstream bands are used. It is defined in
// the same way as the downstream line attenuation per band attribute. (R) (optional) (2 bands *
// 2-bytes-= 4-bytes)
//
// Upstream Line Attenuation Extension
// This attribute extends LATNus when more than four upstream bands are used. It is defined in the
// same way as the upstream line attenuation per band attribute. (R) (optional) (1 band *
// 2-bytes-=-2-bytes)
//
// Downstream Signal Attenuation Extension
// This attribute extends SATNds when more than three downstream bands are used. It is defined in
// the same way as the downstream signal attenuation per band attribute. (R) (optional) (2 bands *
// 2-bytes-= 4-bytes)
//
// Upstream Signal Attenuation Extension
// This attribute extends SATNus when more than four upstream bands are used. It is defined in the
// same way as the upstream signal attenuation per band attribute. (R) (optional) (1 band *
// 2-bytes-= 2-bytes)
//
// Downstream Snr Margin Extension
// This attribute extends SNRMpbds when more than three downstream bands are used. It is defined in
// the same way as the downstream SNR margin per band attribute. (R) (optional) (2 bands *
// 2-bytes-= 4-bytes)
//
// Upstream Snr Margin Extension
// This attribute extends SNRMpbus when more than four upstream bands are used. It is defined in
// the same way as the upstream SNR margin per band attribute. (R) (optional) (1-band * 2-bytes-=
// 2-bytes)
//
type Vdsl2LineInventoryAndStatusDataPart3 struct {
ManagedEntityDefinition
Attributes AttributeValueMap
}
// Attribute name constants
const Vdsl2LineInventoryAndStatusDataPart3_UpstreamBandsCount = "UpstreamBandsCount"
const Vdsl2LineInventoryAndStatusDataPart3_DownstreamBandsCount = "DownstreamBandsCount"
const Vdsl2LineInventoryAndStatusDataPart3_DownstreamLineAttenuationPerBand = "DownstreamLineAttenuationPerBand"
const Vdsl2LineInventoryAndStatusDataPart3_UpstreamLineAttenuationPerBand = "UpstreamLineAttenuationPerBand"
const Vdsl2LineInventoryAndStatusDataPart3_DownstreamSignalAttenuationPerBand = "DownstreamSignalAttenuationPerBand"
const Vdsl2LineInventoryAndStatusDataPart3_UpstreamSignalAttenuationPerBand = "UpstreamSignalAttenuationPerBand"
const Vdsl2LineInventoryAndStatusDataPart3_DownstreamSnrMarginPerBand = "DownstreamSnrMarginPerBand"
const Vdsl2LineInventoryAndStatusDataPart3_UpstreamSnrMarginPerBand = "UpstreamSnrMarginPerBand"
const Vdsl2LineInventoryAndStatusDataPart3_DownstreamLineAttenuationExtension = "DownstreamLineAttenuationExtension"
const Vdsl2LineInventoryAndStatusDataPart3_UpstreamLineAttenuationExtension = "UpstreamLineAttenuationExtension"
const Vdsl2LineInventoryAndStatusDataPart3_DownstreamSignalAttenuationExtension = "DownstreamSignalAttenuationExtension"
const Vdsl2LineInventoryAndStatusDataPart3_UpstreamSignalAttenuationExtension = "UpstreamSignalAttenuationExtension"
const Vdsl2LineInventoryAndStatusDataPart3_DownstreamSnrMarginExtension = "DownstreamSnrMarginExtension"
const Vdsl2LineInventoryAndStatusDataPart3_UpstreamSnrMarginExtension = "UpstreamSnrMarginExtension"
func init() {
vdsl2lineinventoryandstatusdatapart3BME = &ManagedEntityDefinition{
Name: "Vdsl2LineInventoryAndStatusDataPart3",
ClassID: Vdsl2LineInventoryAndStatusDataPart3ClassID,
MessageTypes: mapset.NewSetWith(
Get,
),
AllowedAttributeMask: 0xfffc,
AttributeDefinitions: AttributeDefinitionMap{
0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
1: ByteField(Vdsl2LineInventoryAndStatusDataPart3_UpstreamBandsCount, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
2: ByteField(Vdsl2LineInventoryAndStatusDataPart3_DownstreamBandsCount, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
3: MultiByteField(Vdsl2LineInventoryAndStatusDataPart3_DownstreamLineAttenuationPerBand, OctetsAttributeType, 0x2000, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, false, false, 3),
4: Uint32Field(Vdsl2LineInventoryAndStatusDataPart3_UpstreamLineAttenuationPerBand, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
5: MultiByteField(Vdsl2LineInventoryAndStatusDataPart3_DownstreamSignalAttenuationPerBand, OctetsAttributeType, 0x0800, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, false, false, 5),
6: Uint32Field(Vdsl2LineInventoryAndStatusDataPart3_UpstreamSignalAttenuationPerBand, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
7: MultiByteField(Vdsl2LineInventoryAndStatusDataPart3_DownstreamSnrMarginPerBand, OctetsAttributeType, 0x0200, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, false, false, 7),
8: Uint32Field(Vdsl2LineInventoryAndStatusDataPart3_UpstreamSnrMarginPerBand, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
9: Uint16Field(Vdsl2LineInventoryAndStatusDataPart3_DownstreamLineAttenuationExtension, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
10: ByteField(Vdsl2LineInventoryAndStatusDataPart3_UpstreamLineAttenuationExtension, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
11: Uint16Field(Vdsl2LineInventoryAndStatusDataPart3_DownstreamSignalAttenuationExtension, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
12: ByteField(Vdsl2LineInventoryAndStatusDataPart3_UpstreamSignalAttenuationExtension, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
13: Uint16Field(Vdsl2LineInventoryAndStatusDataPart3_DownstreamSnrMarginExtension, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
14: ByteField(Vdsl2LineInventoryAndStatusDataPart3_UpstreamSnrMarginExtension, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
},
Access: CreatedByOnu,
Support: UnknownSupport,
}
}
// NewVdsl2LineInventoryAndStatusDataPart3 (class ID 170) 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 NewVdsl2LineInventoryAndStatusDataPart3(params ...ParamData) (*ManagedEntity, OmciErrors) {
return NewManagedEntity(*vdsl2lineinventoryandstatusdatapart3BME, params...)
}