blob: d72f000e80a9d30298ef66fada7ab4cef2838a2b [file] [log] [blame]
Chip Boling6e27b352020-02-14 09:10:01 -06001/*
2 * Copyright (c) 2018 - present. Boling Consulting Solutions (bcsw.net)
Andrea Campanella7167ebb2020-02-24 09:56:38 +01003 * Copyright 2020-present Open Networking Foundation
Chip Boling8cdd6392022-01-27 08:43:37 -06004 *
Chip Boling6e27b352020-02-14 09:10:01 -06005 * 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
Chip Boling8cdd6392022-01-27 08:43:37 -06008 *
Chip Boling6e27b352020-02-14 09:10:01 -06009 * http://www.apache.org/licenses/LICENSE-2.0
Chip Boling8cdd6392022-01-27 08:43:37 -060010 *
Chip Boling6e27b352020-02-14 09:10:01 -060011 * 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 */
Chip Boling2d51f052021-02-09 09:04:15 -060017/*
Chip Boling6e27b352020-02-14 09:10:01 -060018 * 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// ExtendedVlanTaggingOperationConfigurationDataClassID is the 16-bit ID for the OMCI
29// Managed entity Extended VLAN tagging operation configuration data
Chip Boling610117d2021-09-09 11:24:34 -050030const ExtendedVlanTaggingOperationConfigurationDataClassID = ClassID(171) // 0x00ab
Chip Boling6e27b352020-02-14 09:10:01 -060031
32var extendedvlantaggingoperationconfigurationdataBME *ManagedEntityDefinition
33
Chip Boling610117d2021-09-09 11:24:34 -050034// ExtendedVlanTaggingOperationConfigurationData (Class ID: #171 / 0x00ab)
35// This ME organizes data associated with VLAN classification and tagging operations. Regardless of
36// its point of attachment, the specified tagging operations refer to the upstream direction.
37// Instances of this ME are created and deleted by the OLT.
38//
39// Through separate attributes, this ME supports either a Received frame VLAN tagging operation
40// table attribute in its backward compatible form, or an enhanced frame classification and
41// processing capability. The OLT can determine whether the ONU supports the enhanced capability
42// through the Enhanced mode attribute of the ONU3-G ME.
Chip Boling6e27b352020-02-14 09:10:01 -060043//
44// Relationships
45// Zero or one instance of this ME may exist for an instance of any ME that can terminate or modify
46// an Ethernet stream.//// When this ME is associated with a UNI-side TP, it performs its upstream classification and
47// tagging operations before offering the upstream frame to other filtering, bridging or switching
48// functions. In the downstream direction, the defined inverse operation is the last operation
49// performed on the frame before offering it to the UNI-side termination.//// When this ME is associated with an ANI-side TP, it performs its upstream classification and
50// tagging operations as the last step before transmission to the OLT, after having received the
51// upstream frame from other filtering, bridging or switching functions. In the downstream
52// direction, the defined inverse operation is the first operation performed on the frame before
53// offering it to possible filter, bridge or switch functions.
54//
55// Attributes
56// Managed Entity Id
Chip Boling610117d2021-09-09 11:24:34 -050057// This attribute provides a unique number for each instance of this ME. (R, setbycreate)
58// (mandatory) (2-bytes)
Chip Boling6e27b352020-02-14 09:10:01 -060059//
60// Association Type
Chip Boling610117d2021-09-09 11:24:34 -050061// This attribute identifies the type of the ME associated with this extended VLAN tagging ME.
62// Values are assigned as follows.
63//
64// 0 MAC bridge port configuration data
65//
66// 1 IEEE 802.1p mapper service profile
67//
68// 2 Physical path termination point Ethernet UNI
69//
70// 3 IP host config data or IPv6 host config data
71//
72// 4 Physical path termination point xDSL UNI
73//
74// 5 GEM IW termination point
75//
76// 6 Multicast GEM IW termination point
77//
78// 7 Physical path termination point MoCA UNI
79//
80// 8 Reserved
81//
82// 9 Ethernet flow termination point
83//
84// 10 Virtual Ethernet interface point
85//
86// 11 MPLS pseudowire termination point
87//
88// 12 EFM bonding group
89//
90// (R,-W, setbycreate) (mandatory) (1-byte)
91//
92// NOTE 1 - If a MAC bridge is configured, code points 1, 5, 6 and 11 are associated with the ANI
93// side of the MAC bridge. Code point 0 is associated with the ANI or UNI side, depending on the
94// location of the MAC bridge port. The other code points are associated with the UNI side.
95//
Chip Boling6e27b352020-02-14 09:10:01 -060096// When the extended VLAN tagging ME is associated with the ANI side, it behaves as an upstream
97// egress rule, and as a downstream ingress rule when the downstream mode attribute is equal to 0.
98// When the extended VLAN tagging ME is associated with the UNI side, the extended VLAN tagging ME
99// behaves as an upstream ingress rule, and as a downstream egress rule when the downstream mode
100// attribute is equal to 0.
101//
102// Received Frame Vlan Tagging Operation Table Max Size
Chip Boling610117d2021-09-09 11:24:34 -0500103// This attribute indicates the maximum number of entries that can be set in the received frame
104// VLAN tagging operation table. (R) (mandatory) (2-bytes)
Chip Boling6e27b352020-02-14 09:10:01 -0600105//
106// Input Tpid
Chip Boling610117d2021-09-09 11:24:34 -0500107// This attribute gives the special TPID value for operations on the input (filtering) side of the
108// table. Typical values include 0x88A8 and 0x9100. (R,-W) (mandatory) (2-bytes)
Chip Boling6e27b352020-02-14 09:10:01 -0600109//
110// Output Tpid
Chip Boling610117d2021-09-09 11:24:34 -0500111// This attribute gives the special TPID value for operations on the output (tagging) side of the
112// table. Typical values include 0x88A8 and 0x9100. (R,-W) (mandatory) (2-bytes)
Chip Boling6e27b352020-02-14 09:10:01 -0600113//
114// Downstream Mode
Chip Boling610117d2021-09-09 11:24:34 -0500115// Regardless of its association, the rules of the received frame VLAN tagging operation table
116// attribute pertain to upstream traffic. The downstream mode attribute defines the tagging action
117// to be applied to downstream frames.
118//
119// The received frame VLAN tagging operation table installs defaults upstream rules. In the
120// downstream direction, the upstream default rules with the default treatment do not apply. It
121// should be noted that downstream frame treatment is defined by the downstream mode attribute and
122// is not affected by the upstream default rules.
123//
124// The received frame VLAN tagging operation table can result in two types of rule mappings:
125//
126// o One to one mapping: A table contains one or more rules that result in unique mappings between
127// the ingress and egress flows.
128//
129// o Many to one mapping: A table contains more than one rule that results in the same ANI-side tag
130// configuration.
131//
132// For one-to-one mappings, the inverse operation to apply in the downstream direction (in the
133// case of bidirectional flows) is the inverse operation of the upstream rule.
134//
135// Many-to-one mappings are possible however, and these are treated as follows.
136//
137// o If an upstream many-to-one mapping results from multiple operation rules producing the same
138// ANI-side tag configuration, then the first matching rule in the list defines the inverse
139// operation. The meaning of match depends on the value of the downstream mode attribute.
140//
141// o If the many-to-one mapping results from "don't care" fields in the filter being replaced with
142// provisioned fields in the ANI side tags, then the inverse is defined to set the corresponding
143// fields on the ANI side to their lowest legal value.
144//
145// If the upstream rule merely copies (i.e., no explicit value is specified in the filter field) an
146// inbound tag value to an outbound tag value, the comparison in the downstream direction applies
147// to all tag values. This applies separately to the VID and P-bit fields. For example, with a
148// downstream mode of 2 and an upstream rule that translates the VID while carrying forward the
149// P-bit value, downstream frames that match the specified WAN-side VID will match any P-bit value
150// and will translate the VID.
151//
152// 0 The operation performed in the downstream direction is the inverse of that performed in the
153// upstream direction. Which treatment and filter fields are used for downstream filtering and the
154// handling of unmatched frames are left to the implementation of the ONU.
155//
156// 1 Regardless of the filter rules, no operation is performed in the downstream direction. All
157// downstream frames are forwarded unmodified.
158//
159// 2 Filter on VID and P-bit value. On a match, perform the inverse operation on both the VID and
160// P-bit value. If no match is found, forward the frame unmodified.
161//
162// 3 Filter on VID only. On a match, perform the inverse VID operation only; pass the P bits
163// through. If no match is found, forward the frame unmodified.
164//
165// 4 Filter on P-bit only. On a match, perform the inverse P-bit operation only; pass the VID
166// through. If no match is found, forward the frame unmodified.
167//
168// 5 Filter on VID and P-bit value. On a match, perform the inverse operation on both the VID and
169// P-bit value. If no match is found, discard the frame.
170//
171// 6 Filter on VID. On a match, perform the inverse operation on the VID only; pass the P bits
172// through. If no match is found, discard the frame.
173//
174// 7 Filter on P-bit only. On a match, perform the inverse P-bit operation only; pass the VID
175// through. If no match is found, discard the frame.
176//
177// 8 Regardless of the filter rules, discard all downstream traffic.
178//
179// Please refer to Table 9.3.13-2 for example downstream mode use cases.
180//
Chip Boling6e27b352020-02-14 09:10:01 -0600181// All other values are reserved. (R, W) (mandatory) (1 byte)
182//
183// Received Frame Vlan Tagging Operation Table
Chip Boling610117d2021-09-09 11:24:34 -0500184// Padding: (8 bits)
185//
186// Filter Ethertype: (4 bits) the Ethertype value on which to filter received frames, as follows.
187//
188// NOTE 3 - This filter is recommended for use on untagged frames or frames with priority tags
189// only.
190//
191// 0 Do not filter on Ethertype.
192//
193// 1 Ethertype = 0x0800 (filter IPoE frames)
194//
195// 2 Ethertype = 0x8863 or 0x8864 (filter PPPoE frames)
196//
197// 3 Ethertype = 0x0806 (filter ARP frames)
198//
199// 4 Ethertype = 0x86DD (filter IPv6 IpoE frames)
200//
201// 5 Ethertype = 0x888E (filter EAPOL frames)
202//
203// Other values: reserved.
204//
205// Filter on extended criteria: (8 bits) filter on key upper level protocols:
206//
207// 0 Do not filter on extended criteria
208//
209// 1 DHCPv4 - frames matching the well-known DHCPv4 UDP ports (67, 68) will be filtered by this
210// criteria code point.
211//
212// 2 DHCPv6 - frames matching the well-known DHCPv6 UDP ports (546, 547) will be filtered by this
213// criteria code point.
214//
215// NOTE 4 - This filter is recommended for use on untagged frames or priority framed tags only.
216//
217// Treatment tags to remove: (2 bits) Defines the tag treatment. The following values are
218// supported:
219//
220// 0..2 Remove 0, 1 or 2 tags, respectively. If one tag is specified, then the outer tag is
221// stripped from double-tagged frames.
222//
223// 3 Discard the frame. No symmetric downstream operation exists; i.e., this rule is ignored in the
224// downstream direction.
225//
226// Padding: (10 bits)
227//
228// Treatment outer priority: (4 bits): Defines the outer VLAN priority treatment. The following
229// values are supported:
230//
231// 0..7 Add an outer tag, and insert this value as the priority in the outer VLAN tag.
232//
233// 8 Add an outer tag, and copy the outer priority from the inner priority of the received frame.
234//
235// 9 Add an outer tag, and copy the outer priority from the outer priority of the received frame.
236//
237// 10 Add an outer tag, and derive P bits from the DSCP field of the incoming frame according to
238// the Extended VLAN tagging operation configuration data ME DSCP to P-bit mapping attribute.
239//
240// 15 Do not add an outer tag.
241//
242// Other values: reserved.
243//
244// Treatment outer VID: (13 bits). Defines the outer VID treatment. The following values are
245// supported:
246//
247// 0..4094 Use this value as the VID in the outer VLAN tag.
248//
249// 4096 Copy the outer VID from the inner VID of the received frame.
250//
251// 4097 Copy the outer VID from the outer VID of the received frame.
252//
253// Other values: reserved.
254//
255// Treatment outer TPID/DEI: (3 bits). Defines the outer VLAN TPID/DEI treatment. The following
256// values are supported:
257//
258// 000 Copy TPID (and DEI, if present) from the inner tag of the received frame.
259//
260// 001 Copy TPID (and DEI, if present) from the outer tag of the received frame.
261//
262// 010 Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
263// data ME and copy DEI bit from the inner tag of the received frame
264//
265// 011 Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
266// data ME and copy DEI from the outer tag of the received frame
267//
268// 100 Set TPID = 0x8100
269//
270// 101 Reserved
271//
272// 110 Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
273// data ME and set DEI = 0
274//
275// 111 Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
276// data ME and set DEI = 1
277//
278// Padding: (12 bits)
279//
280// Treatment inner priority: (4 bits). Defines the inner VLAN priority treatment. The following
281// values are supported:
282//
283// 0..7 Add an inner tag, and insert this value as the priority to insert in the inner VLAN tag.
284//
285// 8 Add an inner tag, and copy the inner priority from the inner priority of the received frame.
286//
287// 9 Add an inner tag, and copy the inner priority from the outer priority of the received frame.
288//
289// 10 Add an inner tag, and derive P bits from the DSCP field of the incoming frame according to
290// the Extended VLAN tagging operation configuration data ME DSCP to P-bit mapping attribute.
291//
292// 15 Do not add an inner tag.
293//
294// Other values: reserved.
295//
296// Treatment inner VID: (13 bits): Defines the inner VLAN VID treatment. The following values are
297// supported:
298//
299// 0..4094 Use this value as the VID in the inner VLAN tag.
300//
301// 4096 Copy the inner VID from the inner VID of the received frame.
302//
303// 4097 Copy the inner VID from the outer VID of the received frame.
304//
305// Other values: reserved.
306//
307// Treatment inner TPID/DEI: (3 bits). Defines the inner VLAN TPID/DEI treatment. The following
308// values are supported:
309//
310// 000 Copy TPID (and DEI, if present) from the inner tag of the received frame.
311//
312// 001 Copy TPID (and DEI, if present) from the outer tag of the received frame.
313//
314// 010 Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
315// data ME and copy the DEI bit from the inner tag of the received frame.
316//
317// 011 Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
318// data ME and, copy the DEI from the outer tag of the received frame.
319//
320// 100 Set TPID = 0x8100
321//
322// 101 Reserved
323//
324// 110 Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
325// data ME and set DEI = 0
326//
327// 111 Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
328// data ME and set DEI = 1
329//
330// This attribute is a table that filters and tags upstream frames. Each entry represents a tagging
331// rule, comprising a filtering part (the first eight fields) and a treatment part (the last seven
332// fields). Each incoming upstream packet is matched against each rule in list order. The first
333// rule that matches the packet is selected as the active rule, and the packet is then treated
334// according to that rule.
335//
336// There are three categories of rules: zero-tag, single-tag, and double-tag rules. Logically,
337// these categories are separate, and apply to their respective incoming frame types. In other
338// words, a single-tag rule should not apply to a double-tagged frame, even though the single-tag
339// rule might match the outer tag of the double-tagged frame.
340//
341// Single-tag rules have a filter outer priority field-= 15 (indicating no external tag), zero-tag
342// rules have both filter priority fields-= 15 (indicating no tags), and double-tag rules have both
343// filter priority fields set to a value that differs from 15 (indicating two tags).
344//
345// Each tagging rule is based on a remove or an add operation, where up to two tags can be removed
346// or added. A modify operation is applied by the combination of remove and add.
347//
348// By convention, when a single tag is added, the treatments use the inner tag data fields. This is
349// true even for treatments where a single tag is added to a frame that already has a tag, i.e.,
350// added as a second tag. The outer tag data fields are used only when two tags are added by the
351// same rule.
352//
353// The terms inner and outer only have meaning with respect to the tags that are being filtered or
354// added.
355//
356// The first 8-bytes of each entry are guaranteed to be unique, and are used to identify table
357// entries (list order, above, refers to a sort on the first 8-bytes). The OLT deletes a table
358// entry by setting all of its last 8-bytes to 0xFF.
359//
360// When the table is created, the ONU should autonomously predefine three entries that list the
361// default treatment (normal forwarding without filtering or modification) for untagged, single
362// tagged, and double tagged frames. As an exception to the rule on ordered processing, these
363// default rules are always considered as a last resort for frames that do not match any other
364// rule. Best practice dictates that these entries not be deleted by the OLT; however, they can be
365// modified to produce the desired default behaviour.
366//
367// It should be noted that downstream frame treatment is defined by the downstream mode attribute
368// and is not affected by the upstream default rules.
369//
370// 15, 4096, x, 15, 4096, x, 0, (0, 15, x, x, 15, x, x) - no tags
371//
372// 15, 4096, x, 14, 4096, x, 0, (0, 15, x, x, 15, x, x) - 1 tag
373//
374// 14, 4096, x, 14, 4096, x, 0, (0, 15, x, x, 15, x, x) - 2 tags
375//
376// NOTE 2 - x is a "don't care" field and should be set to zero.
377//
378// See Figure 9.3.13-1.
379//
380// (R,-W) (mandatory) (16N bytes, where N is the number of VLAN tagging rules)
381//
382// Filter outer priority: (4 bits) Defines the outer VLAN priority filtering operation. The
383// following values are supported:
384//
385// 0..7 Filter received frames on this outer priority (P bit) value.
386//
387// 8 Do not filter on outer priority.
388//
389// 14 This is the default filter when no other two-tag rule applies.
390//
391// 15 This entry is not a double-tag rule; ignore all other outer tag filter fields.
392//
393// Other values: reserved.
394//
395// Filter outer VID: (13 bits) Defines the outer VLAN VID filtering operation. The following
396// values are supported:
397//
398// 0..4094 Filter received frames on this outer VID value.
399//
400// 4096 Do not filter on the outer VID.
401//
402// Other values: reserved.
403//
404// Filter outer TPID/DEI: (3 bits) Defines the outer VLAN TPID/DEI filtering operation. The
405// following values are supported:
406//
407// 000 Do not filter on outer TPID field.
408//
409// 100 Outer TPID = 0x8100. Filter on frames with the outer TPID set to 0x8100.
410//
411// 101 Outer TPID = input TPID attribute value, don't care about DEI bit. Filter on frames with the
412// outer TPID set to match the Extended VLAN tagging operation configuration data Input TPID
413// attribute value and ignore the DEI bit.
414//
415// 110 Outer TPID = input TPID, DEI = 0. Filter on frames with the outer TPID set to match the
416// Extended VLAN tagging operation configuration data Input TPID attribute value and DEI set to the
417// value 0.
418//
419// 111 Outer TPID = input TPID, DEI = 1. Filter on frames with the outer TPID set to match the
420// Extended VLAN tagging operation configuration data Input TPID attribute value and DEI set to the
421// value 1
422//
423// Padding: (12 bits)
424//
425// Filter inner priority: (4 bits) Defines the inner VLAN priority filtering operation. The
426// following values are supported:
427//
428// 0..7 Filter received frames on this inner priority value.
429//
430// 8 Do not filter on inner priority.
431//
432// 14 This is the default filter when no other one-tag rule applies.
433//
434// 15 This entry is a no-tag rule; ignore all other VLAN tag filter fields.
435//
436// Other values: reserved.
437//
438// Filter inner VID: (13 bits) Defines the inner VLAN VID filtering operation. The following
439// values are supported:
440//
441// 0..4094 Filter received frames on this inner VID value.
442//
443// 4096 Do not filter on the inner VID.
444//
445// Other values: reserved.
446//
447// Filter inner TPID/DEI: (3 bits) Defines the inner VLAN TPID/DEI filtering operation. The
448// following values are supported:
449//
450// 000 Do not filter on inner TPID field.
451//
452// 100 Inner TPID = 0x8100. Filter on frames with the inner TPID set to 0x8100.
453//
454// 101 Inner TPID = input TPID attribute value, don't care about DEI bit. Filter on frames with the
455// inner TPID set to match the Extended VLAN tagging operation configuration data Input TPID
456// attribute value and ignore the DEI bit.
457//
458// 110 Inner TPID = input TPID, DEI = 0. Filter on frames with the inner TPID set to match the
459// Extended VLAN tagging operation configuration data Input TPID attribute value and DEI set to the
460// value 0.
461//
462// 111 Inner TPID = input TPID, DEI = 1. Filter on frames with the inner TPID set to match the
463// Extended VLAN tagging operation configuration data Input TPID attribute value and DEI set to the
464// value 1.
Chip Boling6e27b352020-02-14 09:10:01 -0600465//
466// Associated Me Pointer
Chip Boling610117d2021-09-09 11:24:34 -0500467// This attribute points to the ME with which this extended VLAN tagging operation configuration
468// data ME is associated. (R,-W, setbycreate) (mandatory) (2-bytes)
469//
Chip Boling6e27b352020-02-14 09:10:01 -0600470// NOTE 5 - When the association type is xDSL, the two MSBs may be used to indicate a bearer
471// channel.
472//
473// Dscp To P Bit Mapping
Chip Boling610117d2021-09-09 11:24:34 -0500474// DSCP to P-bit mapping: This attribute specifies mapping from DSCP to P bits. The attribute can
475// be considered a bit string sequence of 64 3-bit groups. The 64 sequence entries represent the
476// possible values of the 6-bit DSCP field. Each 3-bit group specifies the P-bit value to which the
477// associated DSCP value should be mapped. (R,-W) (optional) (24-bytes)
478//
Chip Boling6e27b352020-02-14 09:10:01 -0600479// NOTE 6 - If certain bits in the DSCP field are to be ignored in the mapping process, the
480// attribute should be provisioned such that all possible values of those bits produce the same
481// P-bit mapping. This can be applied to the case where instead of full DSCP, the operator wishes
482// to adopt the priority mechanism based on IP precedence, which needs only the three MSBs of the
483// DSCP field.
484//
Chip Boling610117d2021-09-09 11:24:34 -0500485// Enhanced Mode
486// The Boolean value true specifies that the Enhanced received frame classification and processing
487// table is used, and the Received frame VLAN tagging operation table is ignored. The value false
488// indicates the Enhanced received frame classification and processing table is not used. It is
489// strongly recommended that the OLT uses the same value for all Extended VLAN tagging operation
490// configuration data instances created on an ONU. (R, Setbycreate) (optional) (1-byte)
491//
492// Enhanced Received Frame Classification And Processing Table
493// This attribute is a table that provides enhanced capability for frame classification and
494// processing. It extends the Received frame VLAN tagging operation table attribute with a set
495// control field, a row key and direction. Each incoming packet is matched against each rule in row
496// key order (smaller value row key has higher precedence) and direction. The first rule that
497// matches the packet is selected as the active rule, and the packet is then treated according to
498// that rule.
499//
500// When the table is empty, the ONU discards all received frames. The OLT may choose to create
501// three entries that list the default treatment (normal forwarding without filtering or
502// modification) for untagged, single tagged, and double tagged frames, with the direction field
503// set to 0.
504//
505// NOTE 7 - Where no change is noted, the definitions in the Received frame VLAN tagging operation
506// table attribute remain applicable.
507//
508// (R,-W) (optional) (28N bytes, where N is the number of entries in the table).
509//
510// Set ctrl: (2 bits)
511//
512// This field determines the meaning of a set operation. These bits are returned as 00 during get
513// next operations.
514//
515// 1 Write this entry into the table. Overwrite any existing entry with the same row key.
516//
517// 2 Delete this entry from the table. The remaining fields are not meaningful.
518//
519// NOTE 8 - unlike the delete operation in the Received frame VLAN tagging operation table, the OLT
520// does not need to set all eight bytes in Word 4 and Word 5 to 0xFF.
521//
522// 3 Clear all entries from the table. The remaining fields are not meaningful.
523//
524// Other values: reserved.
525//
526// Dir: (2 bits)
527//
528// This field determines the direction of the classification and processing rule.
529//
530// 0 This is an upstream rule. In the downstream direction, the inverse classification and
531// operation is defined based on the downstream mode code point. All downstream mode codepoints are
532// considered valid to be used when dir=0 is used (including downstream mode 8).
533//
534// 1 This is an upstream-only rule. This rule is ignored in the downstream direction.
535//
536// 2 This is a downstream-only rule. This rule is ignored in the upstream direction.
537//
538// Other values: reserved.
539//
540// Row key: (16 bits)
541//
542// The row key distinguishes rows in the table. It is the responsibility of the OLT to assign and
543// track row keys and content, and to ensure the classification rules are not duplicated and in the
544// correct ordering.
545//
546// For Filter outer priority, Filter outer VID, Filter outer TPID/DEI, Filter inner priority,
547// Filter inner VID, Filter inner TPID/DEI, Filter on Extended Criteria, Filter Ethertype,
548// Treatment outer priority, Treatment outer VID, Treatment outer TPID/DEI, Treatment inner
549// priority, Treatment inner VID, and Treatment inner TPID/DEI values please refer to Received
550// frame VLAN tagging operation table in this ME.
551//
Chip Boling6e27b352020-02-14 09:10:01 -0600552type ExtendedVlanTaggingOperationConfigurationData struct {
553 ManagedEntityDefinition
554 Attributes AttributeValueMap
555}
556
Chip Boling8cdd6392022-01-27 08:43:37 -0600557// Attribute name constants
558
559const ExtendedVlanTaggingOperationConfigurationData_AssociationType = "AssociationType"
560const ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTableMaxSize = "ReceivedFrameVlanTaggingOperationTableMaxSize"
561const ExtendedVlanTaggingOperationConfigurationData_InputTpid = "InputTpid"
562const ExtendedVlanTaggingOperationConfigurationData_OutputTpid = "OutputTpid"
563const ExtendedVlanTaggingOperationConfigurationData_DownstreamMode = "DownstreamMode"
564const ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable = "ReceivedFrameVlanTaggingOperationTable"
565const ExtendedVlanTaggingOperationConfigurationData_AssociatedMePointer = "AssociatedMePointer"
566const ExtendedVlanTaggingOperationConfigurationData_DscpToPBitMapping = "DscpToPBitMapping"
567const ExtendedVlanTaggingOperationConfigurationData_EnhancedMode = "EnhancedMode"
568const ExtendedVlanTaggingOperationConfigurationData_EnhancedReceivedFrameClassificationAndProcessingTable = "EnhancedReceivedFrameClassificationAndProcessingTable"
569
Chip Boling6e27b352020-02-14 09:10:01 -0600570func init() {
571 extendedvlantaggingoperationconfigurationdataBME = &ManagedEntityDefinition{
572 Name: "ExtendedVlanTaggingOperationConfigurationData",
Chip Boling8cdd6392022-01-27 08:43:37 -0600573 ClassID: ExtendedVlanTaggingOperationConfigurationDataClassID,
Chip Boling6e27b352020-02-14 09:10:01 -0600574 MessageTypes: mapset.NewSetWith(
575 Create,
576 Delete,
577 Get,
578 GetNext,
579 Set,
Chip Boling2d51f052021-02-09 09:04:15 -0600580 SetTable,
Chip Boling6e27b352020-02-14 09:10:01 -0600581 ),
Chip Boling610117d2021-09-09 11:24:34 -0500582 AllowedAttributeMask: 0xffc0,
Chip Boling6e27b352020-02-14 09:10:01 -0600583 AttributeDefinitions: AttributeDefinitionMap{
Chip Boling8cdd6392022-01-27 08:43:37 -0600584 0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
585 1: ByteField(ExtendedVlanTaggingOperationConfigurationData_AssociationType, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
586 2: Uint16Field(ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTableMaxSize, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
587 3: Uint16Field(ExtendedVlanTaggingOperationConfigurationData_InputTpid, UnsignedIntegerAttributeType, 0x2000, 34984, mapset.NewSetWith(Read, Write), false, false, false, 3),
588 4: Uint16Field(ExtendedVlanTaggingOperationConfigurationData_OutputTpid, UnsignedIntegerAttributeType, 0x1000, 34984, mapset.NewSetWith(Read, Write), false, false, false, 4),
589 5: ByteField(ExtendedVlanTaggingOperationConfigurationData_DownstreamMode, EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
590 6: TableField(ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable, TableAttributeType, 0x0400, TableInfo{nil, 16}, mapset.NewSetWith(Read, Write), false, false, false, 6),
591 7: Uint16Field(ExtendedVlanTaggingOperationConfigurationData_AssociatedMePointer, PointerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
592 8: MultiByteField(ExtendedVlanTaggingOperationConfigurationData_DscpToPBitMapping, OctetsAttributeType, 0x0100, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, true, false, 8),
593 9: ByteField(ExtendedVlanTaggingOperationConfigurationData_EnhancedMode, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate), false, true, false, 9),
594 10: TableField(ExtendedVlanTaggingOperationConfigurationData_EnhancedReceivedFrameClassificationAndProcessingTable, TableAttributeType, 0x0040, TableInfo{nil, 28}, mapset.NewSetWith(Read, Write), false, true, false, 10),
Chip Boling6e27b352020-02-14 09:10:01 -0600595 },
596 Access: CreatedByOlt,
597 Support: UnknownSupport,
598 }
599}
600
601// NewExtendedVlanTaggingOperationConfigurationData (class ID 171) creates the basic
602// Managed Entity definition that is used to validate an ME of this type that
603// is received from or transmitted to the OMCC.
604func NewExtendedVlanTaggingOperationConfigurationData(params ...ParamData) (*ManagedEntity, OmciErrors) {
605 return NewManagedEntity(*extendedvlantaggingoperationconfigurationdataBME, params...)
606}