blob: ebac5a14811d74c539b15e83d5347a103aecbdba [file] [log] [blame]
Chip Boling610117d2021-09-09 11:24:34 -05001/*
2 * Copyright (c) 2018 - present. Boling Consulting Solutions (bcsw.net)
3 * Copyright 2020-present Open Networking Foundation
4
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8
9 * http://www.apache.org/licenses/LICENSE-2.0
10
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17/*
18 * NOTE: This file was generated, manual edits will be overwritten!
19 *
20 * Generated by 'goCodeGenerator.py':
21 * https://github.com/cboling/OMCI-parser/README.md
22 */
23
24package generated
25
26import "github.com/deckarep/golang-set"
27
28// Vdsl2LineConfigurationExtensionsClassID is the 16-bit ID for the OMCI
29// Managed entity VDSL2 line configuration extensions
30const Vdsl2LineConfigurationExtensionsClassID = ClassID(165) // 0x00a5
31
32var vdsl2lineconfigurationextensionsBME *ManagedEntityDefinition
33
34// Vdsl2LineConfigurationExtensions (Class ID: #165 / 0x00a5)
35// This ME extends the xDSL line configuration MEs with attributes that were originally unique to
36// ITU-T G.993.2 VDSL2. Due to continuing standards development, some attributes - and therefore
37// this ME - have also become applicable to other Recommendations, specifically [ITU-T G.992.3] and
38// [ITU-T G.992.5]. The attributes of this ME are further defined in [ITUT G.997.1]. An instance of
39// this ME is created and deleted by the OLT.
40//
41// Relationships
42// 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
43// associated together through a common ME ID (the client PPTP xDSL UNI part 1 has a single
44// pointer, which refers to the entire set of line configuration parts).
45//
46// Attributes
47// Managed Entity Id
48// This attribute uniquely identifies each instance of this ME. All xDSL and VDSL2 line
49// configuration profiles and extensions that pertain to a given PPTP xDSL UNI must share a common
50// ME ID. (R, setbycreate) (mandatory) (2-bytes)
51//
52// Vdsl2 Profiles Enabling
53// The PROFILES attribute contains the ITU-T G.993.2 profiles to be allowed by the xTU-C. It is
54// coded in a bit map representation (0 if not allowed, 1 if allowed) with the following
55// definition.
56//
57// Bit Meaning
58//
59// 1 (LSB) ITU-T G.993.2 profile 8a
60//
61// 2 ITU-T G.993.2 profile 8b
62//
63// 3 ITU-T G.993.2 profile 8c
64//
65// 4 ITU-T G.993.2 profile 8d
66//
67// 5 ITU-T G.993.2 profile 12a
68//
69// 6 ITU-T G.993.2 profile 12b
70//
71// 7 ITU-T G.993.2 profile 17a
72//
73// 8 ITU-T G.993.2 profile 30a
74//
75// (R,-W, setbycreate) (mandatory for ITU-T G.993.2) (1-byte)
76//
77// Vdsl2 Psd Mask Class Selection Classmask
78// NOTE 1 - A single PSD mask class may be selected per annex of [ITU-T G.993.2].
79//
80// NOTE 2 - It is expected that only a single annex will be enabled at any given time, such that
81// the CLASSMASK attribute, as well as the LIMITMASK and US0DISABLE attributes below, need not be
82// vectors of values.
83//
84// NOTE 3 - Attribute value 4 was formerly defined in [ITU-T G.997.1], and is no longer used.
85//
86// (R,-W, setbycreate) (mandatory) (1-byte)
87//
88// VDSL2 PSD mask class selection (CLASSMASK): To reduce the number of configuration possibilities,
89// the limit PSD masks are grouped in the following PSD mask classes.
90//
91// - Class 998 Annex A of [ITU-T G.993.2]: D-32, D-48, D-64, D-128
92//
93// - Class 997-M1c Annex B of [ITU-T G.993.2]: 997M1c-A-7
94//
95// - Class 997-M1x Annex B of [ITU-T G.993.2]: 997M1x-M
96//
97// - Class 997-M2x Annex B of [ITU-T G.993.2]: 997E17-M2x-NUS0, 997E30M2xNUS0
98//
99// - Class 998-M2x Annex B of [ITU-T G.993.2]: 998M2x-A, 998M2xM, 998M2x-B, 998-M2x-NUS0,
100// 998E17-M2xNUS0, 998E17M2xNUS0-M, 998E30M2xNUS0, 998E30M2xNUS0M, 998E17-M2x-A
101//
102// - Class 998ADE-M2x Annex B of [ITU-T G.993.2]: 998-M2x-A, 998M2x-M, 998-M2x-B, 998-M2x-NUS0,
103// 998ADE17-M2x-A, 998ADE17M2xB, 998ADE17-M2x-M, 998ADE17M2xNUS0-M, 998ADE30M2xNUS0-A,
104// 998ADE30M2x-NUS0-M, HPEADE1230, HPEADE1730
105//
106// - Class 998-B Annex C: POTS-138b, POTS-276b (clause C.2.1.1 of [ITUT-G.993.2]), TCMISDN (clause
107// C.2.1.2 of [ITU-T G.993.2])
108//
109// - Class 998-CO Annex C of [ITU-T G.993.2]: POTS138co, POTS276co (clause C.2.1.1 of [ITU-T
110// G.993.2])
111//
112// - Class HPE-M1 Annex B of [ITU-T G.993.2]: HPE17M1-NUS0, HPE30M1NUS0, HPE1230-M1-NUS0,
113// HPE1730-M1-NUS0
114//
115// Each class is designed such that the PSD levels of each limit PSD mask of a specific class are
116// equal in their respective passbands above 552 kHz.
117//
118// The CLASSMASK attribute is defined per annex of [ITU-T G.993.2] enabled in the xTSE table (see
119// Table 9.7.12-1). It selects a single PSD mask class per annex of [ITU-T G.993.2] to be activated
120// at the very high-speed digital subscriber line transceiver unit, operator end (VTU-O). The
121// coding is as follows:
122//
123// Vdsl2 Limit Psd Masks
124// The LIMITMASK attribute contains the ITU-T G.993.2 limit PSD masks of the selected PSD mask
125// class, enabled by the near-end xTU for each class of profiles. One LIMITMASK parameter is
126// defined per annex enabled in the xTSE (see Table 9.7.12-1).
127//
128// The profiles are grouped in the following profile classes:
129//
130// - Class 8: Profiles 8a, 8b, 8c, 8d
131//
132// - Class 12: Profiles 12a, 12b
133//
134// - Class 17: Profile 17a
135//
136// - Class 30: Profile 30a
137//
138// For each profile class, several limit PSD masks of the selected PSD mask class (CLASSMASK) may
139// be enabled. The enabling attribute is coded in a bit map representation (0 if the associated
140// mask is not allowed, 1 if it is allowed). The bit mask is defined in Table 9.7.6-1. (R,-W,
141// setbycreate) (mandatory) (8-bytes)
142//
143// Vdsl2 Us0 Disabling
144// The US0DISABLE attribute specifies whether channel US0 is disabled for each limit PSD mask
145// enabled in the LIMITMASK attribute.
146//
147// For each limit PSD mask enabled in the LIMITMASK attribute, one bit indicates if US0 is
148// disabled. The disabling attribute is a bit map where the value 1 specifies that US0 is disabled
149// for the associated limit mask. The bit map has the same structure as the LIMITMASK attribute.
150// (R,-W, setbycreate) (mandatory) (8-bytes)
151//
152// Vdsl2 Us0 Psd Masks
153// The US0MASK attribute contains the US0 PSD masks to be allowed by the xTU-C. This attribute is
154// only defined for Annex-A of [ITUT-G.993.2]. It is represented as a bit map (0 if not allowed, 1
155// if allowed) with the definitions of Table-9.7.6-2. (R, W, setbycreate) (mandatory) (4-bytes)
156//
157// Vdsl2_Carmask Table
158// VDSL2-CARMASK table: This attribute specifies restrictions, additional to the band plan, that
159// determine the set of subcarriers allowed for transmission in both upstream and downstream
160// directions.
161//
162// The VDSL2-CARMASK attribute describes the not-masked subcarriers in terms of one or more
163// frequency bands. Each band is represented by start and stop subcarrier indices with a subcarrier
164// spacing of 4.3125-kHz. The valid range of subcarrier indices is from 0 to at least the index of
165// the highest allowed subcarrier in both transmission directions among all profiles enabled by the
166// VDSL2 profiles enabling (PROFILES) attribute. Up to 32 bands may be specified. Other subcarriers
167// are masked.
168//
169// For profiles using 8.625 kHz tone spacing, the odd subcarrier indices i4.3125 in VDSL2-CARMASK
170// can be transformed into actual subcarrier indices i8.625 using the following rule:
171//
172// - for the start frequency of each band: i8.625-=-(i4.3125 + 1)/2
173//
174// - for the stop frequency of each band: i8.625-=-(i4.3125 - 1)/2.
175//
176// The VDSL2-CARMASK attribute is a table where each entry comprises:
177//
178// - an entry number field (1-byte, first entry numbered 1);
179//
180// - band start subcarrier index (2-bytes);
181//
182// - band stop subcarrier index (2-bytes).
183//
184// By default, the table is empty. Entries are added or modified using the set action. Setting a
185// table entry with non-zero subcarrier references implies insertion into the table. Setting an
186// entry's subcarrier references to zero implies deletion from the table, if present.
187//
188// The maximum number of bands is 32, so the maximum size of the table is 160-bytes. (R,-W)
189// (mandatory) (5 * N bytes, where N is the number of bands)
190//
191// Carmask Valid
192// This attribute controls and reports the status of the VDSL2-CARMASK table. If CARMASK valid-= 1,
193// then the VDSL2-CARMASK has been effectuated on the xDSL equipment. If CARMASK valid-= 0
194// (default), then the VDSL2-CARMASK table is under construction and has not been effectuated on
195// the xDSL equipment.
196//
197// This attribute behaves as follows.
198//
199// If the OLT changes any of the VDSL2-CARMASK table entries or sets CARMASK valid-= 0, then
200// CARMASK valid-= 0.
201//
202// If CARMASK valid-= 0 and the OLT sets CARMASK valid-= 1, then the ONU updates the xDSL equipment
203// with the contents of the table.
204//
205// (R,-W) (mandatory) (1-byte)
206//
207// Upboshaped
208// This attribute includes two parameters for each band. The parameters are a and b, in that order.
209// Parameter a lies in the range 4000 (40.00-dBm/Hz) to 8095 (80.95-dBm/Hz). Parameter b lies in
210// the range 0 (0.00-dBm/Hz) to 4095 (40.95-dBm/Hz). The special values a-= b-= 0 disable UPBO in
211// the respective upstream band.
212//
213// The upstream electrical length parameter UPBOKL defines the electrical length expressed in
214// decibels at 1-MHz, kl0, which may also be configured by the OLT. Its value ranges from 0
215// (0.0-dB) to 1280 (128.0-dB).
216//
217// If the force electrical length parameter UPBOKLF is 1, the very high-speed digital subscriber
218// line transceiver unit, remote end (VTU-R) is forced to use the electrical length from this
219// attribute (UPBOKL) to compute UPBO. Otherwise, the VDSL2 transceiver units (VTUs) determine the
220// electrical length themselves.
221//
222// (R,-W) (mandatory) (23-bytes)
223//
224// Upstream power back-off (UPBO) is specified in [ITUT G.993.2] to provide spectral compatibility
225// between loops of different lengths deployed in the same cable binder. The upstream transmit PSD
226// mask, UPBOMASKus is defined in clause 7.2.1.3.2 of [ITUT G.993.2].
227//
228// The ITU-T G.993.2 UPBO configuration attributes a and b are set by the OLT via this attribute.
229// The reference length kl0_REF is set by the companion attribute UPBO klREF-pb, defined in the
230// following. Further details appear in [ITUT-G.997.1].
231//
232// Cyclic Extension
233// The CEFLAG attribute enables (1) the optional cyclic extension values. If set to 0, the cyclic
234// extension is forced to the mandatory length 5N/32. (R,-W) (mandatory) (1-byte)
235//
236// Downstream Signal_To_Noise Ratio Snr Mode
237// Downstream signal-to-noise ratio (SNR) mode: The SNRMODEds attribute controls transmitter
238// referred virtual noise in the downstream direction. If set to 1, virtual noise is disabled. If
239// set to 2, virtual noise is enabled. (R,-W) (mandatory) (1-byte)
240//
241// Upstream Snr Mode
242// The SNRMODEus attribute controls transmitter referred virtual noise in the upstream direction.
243// If set to 1, virtual noise is disabled. If set to 2, virtual noise is enabled. (R,-W)
244// (mandatory) (1-byte)
245//
246// Transmitter Referred Virtual Noise Downstream Table
247// Table entries for this attribute have the default value 254 for the noise PSD level. Entries are
248// added or modified using the set action. Setting an entry to a noise PSD level less than or equal
249// to 254 implies insertion into the table. Setting an entry's noise PSD level to 255 implies
250// deletion from the table, if present.
251//
252// (R,-W) (optional) (3N bytes, where N is the number of breakpoints)
253//
254// The TXREFVNds table defines the downstream transmitter referred virtual noise. TXREFVNds is
255// specified through a set of breakpoints. Each breakpoint comprises a subcarrier index t, with a
256// subcarrier spacing of 4.3125-kHz, and a noise PSD level at that subcarrier. The set of
257// breakpoints can then be represented as [(t1, PSD1), (t2, PSD2), ..., (tN, PSDN)]. The subcarrier
258// index t is an unsigned 2 byte integer. The noise level is 1-byte whose value ranges from 0
259// (-40-dBm/Hz) to 200 (-140-dBm/Hz), in steps of 0.5 dB. Values between 201 and 254 indicate a
260// noise PSD level of 0 W/Hz. The maximum number of breakpoints is 32; no more than 15 breakpoints
261// may be configured below the upper edge of the passband of every mode enabled for [ITU-T G.992.3]
262// and [ITUT-G.992.5].
263//
264// Transmitter Referred Virtual Noise Upstream Table
265// The TXREFVNus attribute defines the upstream transmitter referred virtual noise. TXREFVNus is
266// specified through a set of breakpoints. Each breakpoint comprises a subcarrier index t, with a
267// subcarrier spacing of 4.3125-kHz, and a noise PSD level at that subcarrier. The set of
268// breakpoints can then be represented as [(t1, PSD1), (t2, PSD2), ..., (tN, PSDN)]. The subcarrier
269// index t is an unsigned 2-byte integer. The noise level is 1-byte whose value ranges from 0
270// (-40-dBm/Hz) to 200 (-140-dBm/Hz), in steps of 0.5 dB. Values between 201 and 254 indicate a
271// noise PSD level of 0-W/Hz. The maximum number of breakpoints is 16; no more than three
272// breakpoints may be configured below the upper edge of the passband of every mode enabled for
273// [ITU-T G.992.3] and [ITUT-G.992.5].
274//
275// Table entries for this attribute have the default value 254 for the noise PSD level. Entries are
276// added or modified using the set action. Setting an entry to a noise PSD level less than or equal
277// to 254 implies insertion into the table. Setting an entry's noise PSD level to 255 implies
278// deletion from the table, if present.
279//
280// (R,-W) (optional) (3N bytes, where N is the number of breakpoints)
281//
282// Dpboshaped
283// Downstream power back-off - shaped is described in [ITUT G.997.1] as a vector of parameters that
284// modifies the downstream PSD mask.
285//
286// DPBOEPSD - Assumed exchange PSD mask. This component points to a downstream xDSL PSD mask
287// profile ME. The PSD mask profile should contain no more than 16 break points. (2-bytes)
288//
289// DPBOESEL - E-side electrical length. This component is the assumed loss at some reference
290// frequency of the electrical cable from the xDSL equipment to a possible flexibility point. It
291// ranges from 0 (0.0-dB) to 511 (255.5-dB) in steps of 0.5-dB. The value 0 has the special meaning
292// that it disables the DPBOSHAPED feature. (2-bytes)
293//
294// The following three parameters describe the cable model. Further details appear in [ITUT
295// G.997.1]. Each is a scalar that represents the range -1 (coded as 0) to +1.5 (coded as 640) in
296// steps of 1/256.
297//
298// DPBOESCMA - (2-bytes)
299//
300// DPBOESCMB - (2-bytes)
301//
302// DPBOESCMC - (2-bytes)
303//
304// DPBOMUS - Assumed minimum usable receive PSD mask. This component ranges from 0 (0.0-dBm/Hz) to
305// 255 (-127.5-dBm/Hz) in steps of 0.5 dB. (1-byte)
306//
307// DPBOFMIN - The lower frequency bound above which DPBO is applied. This component ranges from 0
308// (0.00 kHz) to 2048 (8832.00 kHz) in steps of 4.3125 kHz. (2-bytes)
309//
310// DPBOFMAX - The upper frequency bound below which DPBO is applied. This component ranges from 32
311// (138.00-kHz) to 6956 (29997.75-kHz) in steps of 4.3125-kHz. (2-bytes)
312//
313// (R,-W) (optional) (15-bytes)
314//
315// Upboklref_Pb
316// UPBOKLREF-pb: This attribute represents the reference loop length, the electrical length used to
317// compute upstream power back-off (UPBO) for each upstream band except US0, for the optional
318// equalized FEXT UPBO method. The value for each upstream band ranges from 1.8 to 63.5 dB in steps
319// of 0.1 dB, i.e., with values 18..635. The special value 0 is also allowed, with semantics as
320// defined in clause 7.2.1.3.2 of [ITUT G.993.2]. (R,-W) (optional) (2-bytes * 5 upstream bands)
321//
322// Upboshaped Aele_Mode, Upboelmt
323// UPBOSHAPED (AELE-MODE, UPBOELMT): This attribute defines the UPBO electrical length estimation
324// mode (AELE-MODE) and UPBO electrical length minimum threshold percentile (UPBOELMT) to be used
325// in the alternative electrical length estimation method (ELE-M1). The format of this attribute is
326// given in octet 1 of Table 12-27 of [ITU-T G.993.2]. (R,-W) (optional) (1-byte)
327//
328type Vdsl2LineConfigurationExtensions struct {
329 ManagedEntityDefinition
330 Attributes AttributeValueMap
331}
332
333func init() {
334 vdsl2lineconfigurationextensionsBME = &ManagedEntityDefinition{
335 Name: "Vdsl2LineConfigurationExtensions",
336 ClassID: 165,
337 MessageTypes: mapset.NewSetWith(
338 Create,
339 Delete,
340 Get,
341 GetNext,
342 Set,
343 SetTable,
344 ),
345 AllowedAttributeMask: 0xffff,
346 AttributeDefinitions: AttributeDefinitionMap{
347 0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
348 1: ByteField("Vdsl2ProfilesEnabling", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
349 2: ByteField("Vdsl2PsdMaskClassSelectionClassmask", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
350 3: Uint64Field("Vdsl2LimitPsdMasks", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
351 4: Uint64Field("Vdsl2Us0Disabling", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
352 5: Uint32Field("Vdsl2Us0PsdMasks", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
353 6: TableField("Vdsl2CarmaskTable", TableAttributeType, 0x0400, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, false, false, 6),
354 7: ByteField("CarmaskValid", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
355 8: MultiByteField("Upboshaped", OctetsAttributeType, 0x0100, 23, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, false, false, 8),
356 9: ByteField("CyclicExtension", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
357 10: ByteField("DownstreamSignalToNoiseRatioSnrMode", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
358 11: ByteField("UpstreamSnrMode", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
359 12: TableField("TransmitterReferredVirtualNoiseDownstreamTable", TableAttributeType, 0x0010, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, true, false, 12),
360 13: TableField("TransmitterReferredVirtualNoiseUpstreamTable", TableAttributeType, 0x0008, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, true, false, 13),
361 14: MultiByteField("Dpboshaped", OctetsAttributeType, 0x0004, 15, toOctets("AAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, true, false, 14),
362 15: Uint16Field("UpboklrefPb", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
363 16: ByteField("UpboshapedAeleMode,Upboelmt", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
364 },
365 Access: CreatedByOlt,
366 Support: UnknownSupport,
367 }
368}
369
370// NewVdsl2LineConfigurationExtensions (class ID 165) creates the basic
371// Managed Entity definition that is used to validate an ME of this type that
372// is received from or transmitted to the OMCC.
373func NewVdsl2LineConfigurationExtensions(params ...ParamData) (*ManagedEntity, OmciErrors) {
374 return NewManagedEntity(*vdsl2lineconfigurationextensionsBME, params...)
375}