blob: eae6eaad0e835bbcd9ed5b33819e79497b825505 [file] [log] [blame]
Matteo Scandolof9d43412021-01-12 11:11:34 -08001/*
2 * Copyright (c) 2018 - present. Boling Consulting Solutions (bcsw.net)
3 * Copyright 2020-present Open Networking Foundation
Elia Battiston9bfe1102022-02-03 10:38:03 +01004 *
Matteo Scandolof9d43412021-01-12 11:11:34 -08005 * 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
Elia Battiston9bfe1102022-02-03 10:38:03 +01008 *
Matteo Scandolof9d43412021-01-12 11:11:34 -08009 * http://www.apache.org/licenses/LICENSE-2.0
Elia Battiston9bfe1102022-02-03 10:38:03 +010010 *
Matteo Scandolof9d43412021-01-12 11:11:34 -080011 * 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 */
Girish Gowdra161d27a2021-05-05 12:01:44 -070017/*
Matteo Scandolof9d43412021-01-12 11:11:34 -080018 * 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// MacBridgePortIcmpv6ProcessPreAssignTableClassID is the 16-bit ID for the OMCI
29// Managed entity MAC bridge port ICMPv6 process pre-assign table
Andrea Campanella10426e22021-10-15 17:58:04 +020030const MacBridgePortIcmpv6ProcessPreAssignTableClassID = ClassID(348) // 0x015c
Matteo Scandolof9d43412021-01-12 11:11:34 -080031
32var macbridgeporticmpv6processpreassigntableBME *ManagedEntityDefinition
33
Andrea Campanella10426e22021-10-15 17:58:04 +020034// MacBridgePortIcmpv6ProcessPreAssignTable (Class ID: #348 / 0x015c)
Matteo Scandolof9d43412021-01-12 11:11:34 -080035// This ME provides an approach to ICMPv6 message processing configuration to those ONUs that
36// support IPv6 awareness. For every message, the MAC bridge port ICMPv6 process pre-assign table
37// can designate a forward, discard or snoop operation. The ONU creates or deletes an instance of
38// this ME automatically upon creation or deletion of a MAC bridge port configuration data ME.
39//
40// The MAC bridge port ICMPv6 process pre-assign table ME filters layer 2 traffic between the UNI
41// and ANI. The operation of this ME is completely independent of the operation and traffic
42// generated or received by a possible IPv6 host config data ME.
43//
44// Relationships
45// An instance of this ME is associated with an instance of a MAC bridge port configuration data
46// ME.
47//
48// Attributes
49// Managed Entity Id
Andrea Campanella10426e22021-10-15 17:58:04 +020050// This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
51// implicitly linked to an instance of the MAC bridge port configuration data ME. (R) (mandatory)
52// (2-bytes)
53//
54// The following nine attributes have similar definitions. Each permits the OLT to specify ICMPv6
55// as the next header in the IPv6 header and various types in the ICMPv6 header, and whether
56// traffic of the specified type is forwarded, discarded or snooped, in upstream and downstream
57// directions separately. The bits of each attribute are assigned as follows.
58//
59// The initial value of each attribute is given in the last column of the table.
Matteo Scandolof9d43412021-01-12 11:11:34 -080060//
61// Icmpv6 Error Messages Processing
Andrea Campanella10426e22021-10-15 17:58:04 +020062// (R,-W) (mandatory) (1-byte)
Matteo Scandolof9d43412021-01-12 11:11:34 -080063//
64// Icmpv6 Informational Messages Processing
Andrea Campanella10426e22021-10-15 17:58:04 +020065// (R,-W) (mandatory) (1-byte)
Matteo Scandolof9d43412021-01-12 11:11:34 -080066//
67// Router Solicitation Processing
Andrea Campanella10426e22021-10-15 17:58:04 +020068// (R,-W) (mandatory) (1-byte)
Matteo Scandolof9d43412021-01-12 11:11:34 -080069//
70// Router Advertisement Processing
Andrea Campanella10426e22021-10-15 17:58:04 +020071// (R,-W) (mandatory) (1-byte)
Matteo Scandolof9d43412021-01-12 11:11:34 -080072//
73// Neighbour Solicitation Processing
Andrea Campanella10426e22021-10-15 17:58:04 +020074// (R,-W) (mandatory) (1-byte)
Matteo Scandolof9d43412021-01-12 11:11:34 -080075//
76// Neighbour Advertisement Processing
Andrea Campanella10426e22021-10-15 17:58:04 +020077// (R,-W) (mandatory) (1-byte)
Matteo Scandolof9d43412021-01-12 11:11:34 -080078//
79// Redirect Processing
Andrea Campanella10426e22021-10-15 17:58:04 +020080// (R,-W) (mandatory) (1-byte)
Matteo Scandolof9d43412021-01-12 11:11:34 -080081//
82// Multicast Listener Query Processing
Andrea Campanella10426e22021-10-15 17:58:04 +020083// (R,-W) (mandatory) (1-byte)
84//
Matteo Scandolof9d43412021-01-12 11:11:34 -080085// NOTE - If the ONU participates in multicast services, MLD queries should be controlled through
86// the multicast operations profile ME. In such a case, it is strongly recommended not to provision
87// the downstream direction of the multicast listener query processing attribute to any value other
88// than forwarding.
89//
90// Unknown Icmpv6 Processing
Andrea Campanella10426e22021-10-15 17:58:04 +020091// (R,-W) (mandatory) (1-byte)
Matteo Scandolof9d43412021-01-12 11:11:34 -080092//
93type MacBridgePortIcmpv6ProcessPreAssignTable struct {
94 ManagedEntityDefinition
95 Attributes AttributeValueMap
96}
97
Elia Battiston9bfe1102022-02-03 10:38:03 +010098// Attribute name constants
99
100const MacBridgePortIcmpv6ProcessPreAssignTable_Icmpv6ErrorMessagesProcessing = "Icmpv6ErrorMessagesProcessing"
101const MacBridgePortIcmpv6ProcessPreAssignTable_Icmpv6InformationalMessagesProcessing = "Icmpv6InformationalMessagesProcessing"
102const MacBridgePortIcmpv6ProcessPreAssignTable_RouterSolicitationProcessing = "RouterSolicitationProcessing"
103const MacBridgePortIcmpv6ProcessPreAssignTable_RouterAdvertisementProcessing = "RouterAdvertisementProcessing"
104const MacBridgePortIcmpv6ProcessPreAssignTable_NeighbourSolicitationProcessing = "NeighbourSolicitationProcessing"
105const MacBridgePortIcmpv6ProcessPreAssignTable_NeighbourAdvertisementProcessing = "NeighbourAdvertisementProcessing"
106const MacBridgePortIcmpv6ProcessPreAssignTable_RedirectProcessing = "RedirectProcessing"
107const MacBridgePortIcmpv6ProcessPreAssignTable_MulticastListenerQueryProcessing = "MulticastListenerQueryProcessing"
108const MacBridgePortIcmpv6ProcessPreAssignTable_UnknownIcmpv6Processing = "UnknownIcmpv6Processing"
109
Matteo Scandolof9d43412021-01-12 11:11:34 -0800110func init() {
111 macbridgeporticmpv6processpreassigntableBME = &ManagedEntityDefinition{
112 Name: "MacBridgePortIcmpv6ProcessPreAssignTable",
Elia Battiston9bfe1102022-02-03 10:38:03 +0100113 ClassID: MacBridgePortIcmpv6ProcessPreAssignTableClassID,
Matteo Scandolof9d43412021-01-12 11:11:34 -0800114 MessageTypes: mapset.NewSetWith(
115 Get,
116 ),
117 AllowedAttributeMask: 0xff80,
118 AttributeDefinitions: AttributeDefinitionMap{
Elia Battiston9bfe1102022-02-03 10:38:03 +0100119 0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
120 1: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_Icmpv6ErrorMessagesProcessing, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
121 2: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_Icmpv6InformationalMessagesProcessing, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
122 3: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_RouterSolicitationProcessing, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
123 4: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_RouterAdvertisementProcessing, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
124 5: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_NeighbourSolicitationProcessing, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
125 6: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_NeighbourAdvertisementProcessing, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
126 7: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_RedirectProcessing, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
127 8: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_MulticastListenerQueryProcessing, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
128 9: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_UnknownIcmpv6Processing, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
Matteo Scandolof9d43412021-01-12 11:11:34 -0800129 },
130 Access: CreatedByOnu,
131 Support: UnknownSupport,
132 }
133}
134
135// NewMacBridgePortIcmpv6ProcessPreAssignTable (class ID 348) creates the basic
136// Managed Entity definition that is used to validate an ME of this type that
137// is received from or transmitted to the OMCC.
138func NewMacBridgePortIcmpv6ProcessPreAssignTable(params ...ParamData) (*ManagedEntity, OmciErrors) {
139 return NewManagedEntity(*macbridgeporticmpv6processpreassigntableBME, params...)
140}