blob: 8131599486001738d06d266731e6341414274fce [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
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 */
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
98func init() {
99 macbridgeporticmpv6processpreassigntableBME = &ManagedEntityDefinition{
100 Name: "MacBridgePortIcmpv6ProcessPreAssignTable",
101 ClassID: 348,
102 MessageTypes: mapset.NewSetWith(
103 Get,
104 ),
105 AllowedAttributeMask: 0xff80,
106 AttributeDefinitions: AttributeDefinitionMap{
107 0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
108 1: ByteField("Icmpv6ErrorMessagesProcessing", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
109 2: ByteField("Icmpv6InformationalMessagesProcessing", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
110 3: ByteField("RouterSolicitationProcessing", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
111 4: ByteField("RouterAdvertisementProcessing", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
112 5: ByteField("NeighbourSolicitationProcessing", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
113 6: ByteField("NeighbourAdvertisementProcessing", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
114 7: ByteField("RedirectProcessing", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
115 8: ByteField("MulticastListenerQueryProcessing", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
116 9: ByteField("UnknownIcmpv6Processing", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
117 },
118 Access: CreatedByOnu,
119 Support: UnknownSupport,
120 }
121}
122
123// NewMacBridgePortIcmpv6ProcessPreAssignTable (class ID 348) creates the basic
124// Managed Entity definition that is used to validate an ME of this type that
125// is received from or transmitted to the OMCC.
126func NewMacBridgePortIcmpv6ProcessPreAssignTable(params ...ParamData) (*ManagedEntity, OmciErrors) {
127 return NewManagedEntity(*macbridgeporticmpv6processpreassigntableBME, params...)
128}