blob: ebac5a14811d74c539b15e83d5347a103aecbdba [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"
// Vdsl2LineConfigurationExtensionsClassID is the 16-bit ID for the OMCI
// Managed entity VDSL2 line configuration extensions
const Vdsl2LineConfigurationExtensionsClassID = ClassID(165) // 0x00a5
var vdsl2lineconfigurationextensionsBME *ManagedEntityDefinition
// Vdsl2LineConfigurationExtensions (Class ID: #165 / 0x00a5)
// This ME extends the xDSL line configuration MEs with attributes that were originally unique to
// ITU-T G.993.2 VDSL2. Due to continuing standards development, some attributes - and therefore
// this ME - have also become applicable to other Recommendations, specifically [ITU-T G.992.3] and
// [ITU-T G.992.5]. The attributes of this ME are further defined in [ITUT G.997.1]. An instance of
// this ME is created and deleted by the OLT.
//
// Relationships
// An instance of this ME may be associated with zero or more instances of an xDSL UNI.//// The overall xDSL line configuration profile is modelled in several parts, all of which are
// associated together through a common ME ID (the client PPTP xDSL UNI part 1 has a single
// pointer, which refers to the entire set of line configuration parts).
//
// Attributes
// Managed Entity Id
// This attribute uniquely identifies each instance of this ME. All xDSL and VDSL2 line
// configuration profiles and extensions that pertain to a given PPTP xDSL UNI must share a common
// ME ID. (R, setbycreate) (mandatory) (2-bytes)
//
// Vdsl2 Profiles Enabling
// The PROFILES attribute contains the ITU-T G.993.2 profiles to be allowed by the xTU-C. It is
// coded in a bit map representation (0 if not allowed, 1 if allowed) with the following
// definition.
//
// Bit Meaning
//
// 1 (LSB) ITU-T G.993.2 profile 8a
//
// 2 ITU-T G.993.2 profile 8b
//
// 3 ITU-T G.993.2 profile 8c
//
// 4 ITU-T G.993.2 profile 8d
//
// 5 ITU-T G.993.2 profile 12a
//
// 6 ITU-T G.993.2 profile 12b
//
// 7 ITU-T G.993.2 profile 17a
//
// 8 ITU-T G.993.2 profile 30a
//
// (R,-W, setbycreate) (mandatory for ITU-T G.993.2) (1-byte)
//
// Vdsl2 Psd Mask Class Selection Classmask
// NOTE 1 - A single PSD mask class may be selected per annex of [ITU-T G.993.2].
//
// NOTE 2 - It is expected that only a single annex will be enabled at any given time, such that
// the CLASSMASK attribute, as well as the LIMITMASK and US0DISABLE attributes below, need not be
// vectors of values.
//
// NOTE 3 - Attribute value 4 was formerly defined in [ITU-T G.997.1], and is no longer used.
//
// (R,-W, setbycreate) (mandatory) (1-byte)
//
// VDSL2 PSD mask class selection (CLASSMASK): To reduce the number of configuration possibilities,
// the limit PSD masks are grouped in the following PSD mask classes.
//
// - Class 998 Annex A of [ITU-T G.993.2]: D-32, D-48, D-64, D-128
//
// - Class 997-M1c Annex B of [ITU-T G.993.2]: 997M1c-A-7
//
// - Class 997-M1x Annex B of [ITU-T G.993.2]: 997M1x-M
//
// - Class 997-M2x Annex B of [ITU-T G.993.2]: 997E17-M2x-NUS0, 997E30M2xNUS0
//
// - Class 998-M2x Annex B of [ITU-T G.993.2]: 998M2x-A, 998M2xM, 998M2x-B, 998-M2x-NUS0,
// 998E17-M2xNUS0, 998E17M2xNUS0-M, 998E30M2xNUS0, 998E30M2xNUS0M, 998E17-M2x-A
//
// - Class 998ADE-M2x Annex B of [ITU-T G.993.2]: 998-M2x-A, 998M2x-M, 998-M2x-B, 998-M2x-NUS0,
// 998ADE17-M2x-A, 998ADE17M2xB, 998ADE17-M2x-M, 998ADE17M2xNUS0-M, 998ADE30M2xNUS0-A,
// 998ADE30M2x-NUS0-M, HPEADE1230, HPEADE1730
//
// - Class 998-B Annex C: POTS-138b, POTS-276b (clause C.2.1.1 of [ITUT-G.993.2]), TCMISDN (clause
// C.2.1.2 of [ITU-T G.993.2])
//
// - Class 998-CO Annex C of [ITU-T G.993.2]: POTS138co, POTS276co (clause C.2.1.1 of [ITU-T
// G.993.2])
//
// - Class HPE-M1 Annex B of [ITU-T G.993.2]: HPE17M1-NUS0, HPE30M1NUS0, HPE1230-M1-NUS0,
// HPE1730-M1-NUS0
//
// Each class is designed such that the PSD levels of each limit PSD mask of a specific class are
// equal in their respective passbands above 552 kHz.
//
// The CLASSMASK attribute is defined per annex of [ITU-T G.993.2] enabled in the xTSE table (see
// Table 9.7.12-1). It selects a single PSD mask class per annex of [ITU-T G.993.2] to be activated
// at the very high-speed digital subscriber line transceiver unit, operator end (VTU-O). The
// coding is as follows:
//
// Vdsl2 Limit Psd Masks
// The LIMITMASK attribute contains the ITU-T G.993.2 limit PSD masks of the selected PSD mask
// class, enabled by the near-end xTU for each class of profiles. One LIMITMASK parameter is
// defined per annex enabled in the xTSE (see Table 9.7.12-1).
//
// The profiles are grouped in the following profile classes:
//
// - Class 8: Profiles 8a, 8b, 8c, 8d
//
// - Class 12: Profiles 12a, 12b
//
// - Class 17: Profile 17a
//
// - Class 30: Profile 30a
//
// For each profile class, several limit PSD masks of the selected PSD mask class (CLASSMASK) may
// be enabled. The enabling attribute is coded in a bit map representation (0 if the associated
// mask is not allowed, 1 if it is allowed). The bit mask is defined in Table 9.7.6-1. (R,-W,
// setbycreate) (mandatory) (8-bytes)
//
// Vdsl2 Us0 Disabling
// The US0DISABLE attribute specifies whether channel US0 is disabled for each limit PSD mask
// enabled in the LIMITMASK attribute.
//
// For each limit PSD mask enabled in the LIMITMASK attribute, one bit indicates if US0 is
// disabled. The disabling attribute is a bit map where the value 1 specifies that US0 is disabled
// for the associated limit mask. The bit map has the same structure as the LIMITMASK attribute.
// (R,-W, setbycreate) (mandatory) (8-bytes)
//
// Vdsl2 Us0 Psd Masks
// The US0MASK attribute contains the US0 PSD masks to be allowed by the xTU-C. This attribute is
// only defined for Annex-A of [ITUT-G.993.2]. It is represented as a bit map (0 if not allowed, 1
// if allowed) with the definitions of Table-9.7.6-2. (R, W, setbycreate) (mandatory) (4-bytes)
//
// Vdsl2_Carmask Table
// VDSL2-CARMASK table: This attribute specifies restrictions, additional to the band plan, that
// determine the set of subcarriers allowed for transmission in both upstream and downstream
// directions.
//
// The VDSL2-CARMASK attribute describes the not-masked subcarriers in terms of one or more
// frequency bands. Each band is represented by start and stop subcarrier indices with a subcarrier
// spacing of 4.3125-kHz. The valid range of subcarrier indices is from 0 to at least the index of
// the highest allowed subcarrier in both transmission directions among all profiles enabled by the
// VDSL2 profiles enabling (PROFILES) attribute. Up to 32 bands may be specified. Other subcarriers
// are masked.
//
// For profiles using 8.625 kHz tone spacing, the odd subcarrier indices i4.3125 in VDSL2-CARMASK
// can be transformed into actual subcarrier indices i8.625 using the following rule:
//
// - for the start frequency of each band: i8.625-=-(i4.3125 + 1)/2
//
// - for the stop frequency of each band: i8.625-=-(i4.3125 - 1)/2.
//
// The VDSL2-CARMASK attribute is a table where each entry comprises:
//
// - an entry number field (1-byte, first entry numbered 1);
//
// - band start subcarrier index (2-bytes);
//
// - band stop subcarrier index (2-bytes).
//
// By default, the table is empty. Entries are added or modified using the set action. Setting a
// table entry with non-zero subcarrier references implies insertion into the table. Setting an
// entry's subcarrier references to zero implies deletion from the table, if present.
//
// The maximum number of bands is 32, so the maximum size of the table is 160-bytes. (R,-W)
// (mandatory) (5 * N bytes, where N is the number of bands)
//
// Carmask Valid
// This attribute controls and reports the status of the VDSL2-CARMASK table. If CARMASK valid-= 1,
// then the VDSL2-CARMASK has been effectuated on the xDSL equipment. If CARMASK valid-= 0
// (default), then the VDSL2-CARMASK table is under construction and has not been effectuated on
// the xDSL equipment.
//
// This attribute behaves as follows.
//
// If the OLT changes any of the VDSL2-CARMASK table entries or sets CARMASK valid-= 0, then
// CARMASK valid-= 0.
//
// If CARMASK valid-= 0 and the OLT sets CARMASK valid-= 1, then the ONU updates the xDSL equipment
// with the contents of the table.
//
// (R,-W) (mandatory) (1-byte)
//
// Upboshaped
// This attribute includes two parameters for each band. The parameters are a and b, in that order.
// Parameter a lies in the range 4000 (40.00-dBm/Hz) to 8095 (80.95-dBm/Hz). Parameter b lies in
// the range 0 (0.00-dBm/Hz) to 4095 (40.95-dBm/Hz). The special values a-= b-= 0 disable UPBO in
// the respective upstream band.
//
// The upstream electrical length parameter UPBOKL defines the electrical length expressed in
// decibels at 1-MHz, kl0, which may also be configured by the OLT. Its value ranges from 0
// (0.0-dB) to 1280 (128.0-dB).
//
// If the force electrical length parameter UPBOKLF is 1, the very high-speed digital subscriber
// line transceiver unit, remote end (VTU-R) is forced to use the electrical length from this
// attribute (UPBOKL) to compute UPBO. Otherwise, the VDSL2 transceiver units (VTUs) determine the
// electrical length themselves.
//
// (R,-W) (mandatory) (23-bytes)
//
// Upstream power back-off (UPBO) is specified in [ITUT G.993.2] to provide spectral compatibility
// between loops of different lengths deployed in the same cable binder. The upstream transmit PSD
// mask, UPBOMASKus is defined in clause 7.2.1.3.2 of [ITUT G.993.2].
//
// The ITU-T G.993.2 UPBO configuration attributes a and b are set by the OLT via this attribute.
// The reference length kl0_REF is set by the companion attribute UPBO klREF-pb, defined in the
// following. Further details appear in [ITUT-G.997.1].
//
// Cyclic Extension
// The CEFLAG attribute enables (1) the optional cyclic extension values. If set to 0, the cyclic
// extension is forced to the mandatory length 5N/32. (R,-W) (mandatory) (1-byte)
//
// Downstream Signal_To_Noise Ratio Snr Mode
// Downstream signal-to-noise ratio (SNR) mode: The SNRMODEds attribute controls transmitter
// referred virtual noise in the downstream direction. If set to 1, virtual noise is disabled. If
// set to 2, virtual noise is enabled. (R,-W) (mandatory) (1-byte)
//
// Upstream Snr Mode
// The SNRMODEus attribute controls transmitter referred virtual noise in the upstream direction.
// If set to 1, virtual noise is disabled. If set to 2, virtual noise is enabled. (R,-W)
// (mandatory) (1-byte)
//
// Transmitter Referred Virtual Noise Downstream Table
// Table entries for this attribute have the default value 254 for the noise PSD level. Entries are
// added or modified using the set action. Setting an entry to a noise PSD level less than or equal
// to 254 implies insertion into the table. Setting an entry's noise PSD level to 255 implies
// deletion from the table, if present.
//
// (R,-W) (optional) (3N bytes, where N is the number of breakpoints)
//
// The TXREFVNds table defines the downstream transmitter referred virtual noise. TXREFVNds is
// specified through a set of breakpoints. Each breakpoint comprises a subcarrier index t, with a
// subcarrier spacing of 4.3125-kHz, and a noise PSD level at that subcarrier. The set of
// breakpoints can then be represented as [(t1, PSD1), (t2, PSD2), ..., (tN, PSDN)]. The subcarrier
// index t is an unsigned 2 byte integer. The noise level is 1-byte whose value ranges from 0
// (-40-dBm/Hz) to 200 (-140-dBm/Hz), in steps of 0.5 dB. Values between 201 and 254 indicate a
// noise PSD level of 0 W/Hz. The maximum number of breakpoints is 32; no more than 15 breakpoints
// may be configured below the upper edge of the passband of every mode enabled for [ITU-T G.992.3]
// and [ITUT-G.992.5].
//
// Transmitter Referred Virtual Noise Upstream Table
// The TXREFVNus attribute defines the upstream transmitter referred virtual noise. TXREFVNus is
// specified through a set of breakpoints. Each breakpoint comprises a subcarrier index t, with a
// subcarrier spacing of 4.3125-kHz, and a noise PSD level at that subcarrier. The set of
// breakpoints can then be represented as [(t1, PSD1), (t2, PSD2), ..., (tN, PSDN)]. The subcarrier
// index t is an unsigned 2-byte integer. The noise level is 1-byte whose value ranges from 0
// (-40-dBm/Hz) to 200 (-140-dBm/Hz), in steps of 0.5 dB. Values between 201 and 254 indicate a
// noise PSD level of 0-W/Hz. The maximum number of breakpoints is 16; no more than three
// breakpoints may be configured below the upper edge of the passband of every mode enabled for
// [ITU-T G.992.3] and [ITUT-G.992.5].
//
// Table entries for this attribute have the default value 254 for the noise PSD level. Entries are
// added or modified using the set action. Setting an entry to a noise PSD level less than or equal
// to 254 implies insertion into the table. Setting an entry's noise PSD level to 255 implies
// deletion from the table, if present.
//
// (R,-W) (optional) (3N bytes, where N is the number of breakpoints)
//
// Dpboshaped
// Downstream power back-off - shaped is described in [ITUT G.997.1] as a vector of parameters that
// modifies the downstream PSD mask.
//
// DPBOEPSD - Assumed exchange PSD mask. This component points to a downstream xDSL PSD mask
// profile ME. The PSD mask profile should contain no more than 16 break points. (2-bytes)
//
// DPBOESEL - E-side electrical length. This component is the assumed loss at some reference
// frequency of the electrical cable from the xDSL equipment to a possible flexibility point. It
// ranges from 0 (0.0-dB) to 511 (255.5-dB) in steps of 0.5-dB. The value 0 has the special meaning
// that it disables the DPBOSHAPED feature. (2-bytes)
//
// The following three parameters describe the cable model. Further details appear in [ITUT
// G.997.1]. Each is a scalar that represents the range -1 (coded as 0) to +1.5 (coded as 640) in
// steps of 1/256.
//
// DPBOESCMA - (2-bytes)
//
// DPBOESCMB - (2-bytes)
//
// DPBOESCMC - (2-bytes)
//
// DPBOMUS - Assumed minimum usable receive PSD mask. This component ranges from 0 (0.0-dBm/Hz) to
// 255 (-127.5-dBm/Hz) in steps of 0.5 dB. (1-byte)
//
// DPBOFMIN - The lower frequency bound above which DPBO is applied. This component ranges from 0
// (0.00 kHz) to 2048 (8832.00 kHz) in steps of 4.3125 kHz. (2-bytes)
//
// DPBOFMAX - The upper frequency bound below which DPBO is applied. This component ranges from 32
// (138.00-kHz) to 6956 (29997.75-kHz) in steps of 4.3125-kHz. (2-bytes)
//
// (R,-W) (optional) (15-bytes)
//
// Upboklref_Pb
// UPBOKLREF-pb: This attribute represents the reference loop length, the electrical length used to
// compute upstream power back-off (UPBO) for each upstream band except US0, for the optional
// equalized FEXT UPBO method. The value for each upstream band ranges from 1.8 to 63.5 dB in steps
// of 0.1 dB, i.e., with values 18..635. The special value 0 is also allowed, with semantics as
// defined in clause 7.2.1.3.2 of [ITUT G.993.2]. (R,-W) (optional) (2-bytes * 5 upstream bands)
//
// Upboshaped Aele_Mode, Upboelmt
// UPBOSHAPED (AELE-MODE, UPBOELMT): This attribute defines the UPBO electrical length estimation
// mode (AELE-MODE) and UPBO electrical length minimum threshold percentile (UPBOELMT) to be used
// in the alternative electrical length estimation method (ELE-M1). The format of this attribute is
// given in octet 1 of Table 12-27 of [ITU-T G.993.2]. (R,-W) (optional) (1-byte)
//
type Vdsl2LineConfigurationExtensions struct {
ManagedEntityDefinition
Attributes AttributeValueMap
}
func init() {
vdsl2lineconfigurationextensionsBME = &ManagedEntityDefinition{
Name: "Vdsl2LineConfigurationExtensions",
ClassID: 165,
MessageTypes: mapset.NewSetWith(
Create,
Delete,
Get,
GetNext,
Set,
SetTable,
),
AllowedAttributeMask: 0xffff,
AttributeDefinitions: AttributeDefinitionMap{
0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
1: ByteField("Vdsl2ProfilesEnabling", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
2: ByteField("Vdsl2PsdMaskClassSelectionClassmask", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
3: Uint64Field("Vdsl2LimitPsdMasks", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
4: Uint64Field("Vdsl2Us0Disabling", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
5: Uint32Field("Vdsl2Us0PsdMasks", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
6: TableField("Vdsl2CarmaskTable", TableAttributeType, 0x0400, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, false, false, 6),
7: ByteField("CarmaskValid", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
8: MultiByteField("Upboshaped", OctetsAttributeType, 0x0100, 23, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, false, false, 8),
9: ByteField("CyclicExtension", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
10: ByteField("DownstreamSignalToNoiseRatioSnrMode", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
11: ByteField("UpstreamSnrMode", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
12: TableField("TransmitterReferredVirtualNoiseDownstreamTable", TableAttributeType, 0x0010, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, true, false, 12),
13: TableField("TransmitterReferredVirtualNoiseUpstreamTable", TableAttributeType, 0x0008, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, true, false, 13),
14: MultiByteField("Dpboshaped", OctetsAttributeType, 0x0004, 15, toOctets("AAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, true, false, 14),
15: Uint16Field("UpboklrefPb", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
16: ByteField("UpboshapedAeleMode,Upboelmt", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
},
Access: CreatedByOlt,
Support: UnknownSupport,
}
}
// NewVdsl2LineConfigurationExtensions (class ID 165) 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 NewVdsl2LineConfigurationExtensions(params ...ParamData) (*ManagedEntity, OmciErrors) {
return NewManagedEntity(*vdsl2lineconfigurationextensionsBME, params...)
}