Import of https://github.com/cboling/omci at commit 7495182a09db38a9b6454a4a457fdd111c1618ac
Change-Id: I3250449080300b21b9d81c64dcc33f98f2e4cd1b
diff --git a/generated/dot1agmep.go b/generated/dot1agmep.go
new file mode 100644
index 0000000..2407290
--- /dev/null
+++ b/generated/dot1agmep.go
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2018 - present. Boling Consulting Solutions (bcsw.net)
+ *
+ * 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"
+
+// Dot1AgMepClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1ag MEP
+const Dot1AgMepClassID ClassID = ClassID(302)
+
+var dot1agmepBME *ManagedEntityDefinition
+
+// Dot1AgMep (class ID #302)
+// This ME models an MEP as defined primarily in [IEEE 802.1ag] and secondarily in [ITUT Y.1731].
+// It is created and deleted by the OLT. An MEP exists at one of eight possible maintenance levels,
+// and resides at the boundary of a MD. It inherits a name, and optionally a set of associated
+// VLANs, from its associated MA.
+//
+// Relationships
+// One or more MEPs may be associated with a MAC bridge port or an IEEE 802.1p mapper in the
+// absence of a MAC bridge. An MEP is also associated with zero or more VLANs and an MA.
+//
+// Attributes
+// Managed Entity Id
+// Managed entity ID: This attribute uniquely identifies each instance of this ME. (R, setbycreate)
+// (mandatory) (2-bytes)
+//
+// Layer 2 Entity Pointer
+// Layer 2 entity pointer: Depending on the value of the layer 2 type attribute, this pointer
+// specifies the MAC bridge port configuration data ME or the IEEE 802.1p mapper service profile ME
+// with which this MEP is associated. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+// Layer 2 Type
+// Layer 2 type: This attribute specifies whether the MA is associated with a MAC bridge port
+// (value 0) or an IEEE 802.1p mapper (value 1). (R,-W, setbycreate) (mandatory) (1-byte)
+//
+// Ma Pointer
+// MA pointer: This pointer specifies the maintenance association with which this MEP is
+// associated. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+// Mep Id
+// MEP ID: This attribute specifies the MEP's own identity in the MA. For a given MA, the MEP ID
+// must be unique throughout the network defined by the MD. The MEP ID is defined in the range
+// 1..8191. The value 0 indicates that no MEP ID is (yet) configured. (R,-W, setbycreate)
+// (mandatory) (2-bytes)
+//
+// Mep Control
+// (R,-W, setbycreate) (mandatory) (1-byte)
+//
+// Primary Vlan
+// Primary VLAN: This attribute is a 12-bit VLAN ID. The value 0 indicates that the MEP inherits
+// its primary VLAN from its parent MA. CFM messages, except forwarded LTMs, are tagged with the
+// primary VLAN ID. If explicitly specified, the value of this attribute must be one of the VLANs
+// associated with the parent MA. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+// Administrative State
+// Administrative state: This attribute locks (1) and unlocks (0) the functions performed by this
+// ME. Administrative state is further described in clause A.1.6. (R,-W, setbycreate) (mandatory)
+// (1-byte)
+//
+// Ccm And Ltm Priority
+// CCM and LTM priority: Ranging from 0..7, this attribute permits CCM and LTM frames to be
+// explicitly prioritized, which may be needed if flows are separated, e.g., by 802.1p priority.
+// The priority specified in this attribute is also used in linktrace reply (LTR) frames originated
+// by this MEP. The value 0xFF selects the IEEE 802.1ag default, whereby CCM and LTM frames are
+// transmitted with the highest Ethernet priority available. (R,-W, setbycreate) (mandatory)
+// (1-byte)
+//
+// Egress Identifier
+// Egress identifier: This attribute comprises 8-bytes to be included in LTMs. They allow received
+// LTRs to be directed to the correct originator. The attribute includes the originator MAC address
+// and a locally defined identifier. If this field is 0, the ONU uses the MEP's MAC address, with 0
+// as the locally defined identifier. (R,-W, setbycreate) (mandatory) (8-bytes)
+//
+// Peer Mep Ids
+// Peer MEP IDs: This attribute lists the expected peer MEPs for CCMs, 2-bytes per MEP ID. [IEEE
+// 802.1ag] allows for multipoint networks, and therefore a list of peer MEPs. This attribute
+// allows for up to 12 peers for a given MEP, though GPON applications are expected to need only a
+// single peer. Missing or unexpected messages trigger alarm declaration after a soak interval.
+// Unused peer MEP slots should be set to 0. (R,-W) (mandatory) (24-bytes)
+//
+// Eth Ais Control
+// (R,-W, setbycreate) (mandatory if ETH AIS is enabled) (1-byte)
+//
+// Fault Alarm Threshold
+// (R,-W, setbycreate) (optional) (1-byte)
+//
+// Alarm Declaration Soak Time
+// Alarm declaration soak time: This attribute defines the defect soak time that must elapse before
+// the MEP declares an alarm. It is expressed in 10-ms units with a range of 250 to 1000, i.e.,
+// 2.5-s to 10-s. The default is recommended to be 2.5 seconds. (R,-W) (mandatory) (2-bytes)
+//
+// Alarm Clear Soak Time
+// Alarm clear soak time: This attribute defines the defect-free soak time that must elapse before
+// the MEP clears an alarm. It is expressed in intervals of 10-ms with a range of 250 to 1-000,
+// i.e., 2.5-s to 10-s. The default is recommended to be 10-s. (R,-W) (mandatory) (2-bytes)
+//
+type Dot1AgMep struct {
+ ManagedEntityDefinition
+ Attributes AttributeValueMap
+}
+
+func init() {
+ dot1agmepBME = &ManagedEntityDefinition{
+ Name: "Dot1AgMep",
+ ClassID: 302,
+ MessageTypes: mapset.NewSetWith(
+ Create,
+ Delete,
+ Get,
+ Set,
+ ),
+ AllowedAttributeMask: 0xfffc,
+ AttributeDefinitions: AttributeDefinitionMap{
+ 0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+ 1: Uint16Field("Layer2EntityPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+ 2: ByteField("Layer2Type", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+ 3: Uint16Field("MaPointer", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+ 4: Uint16Field("MepId", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+ 5: ByteField("MepControl", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+ 6: Uint16Field("PrimaryVlan", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+ 7: ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+ 8: ByteField("CcmAndLtmPriority", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+ 9: Uint64Field("EgressIdentifier", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
+ 10: MultiByteField("PeerMepIds", OctetsAttributeType, 0x0040, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, false, false, 10),
+ 11: ByteField("EthAisControl", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
+ 12: ByteField("FaultAlarmThreshold", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 12),
+ 13: Uint16Field("AlarmDeclarationSoakTime", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, false, false, 13),
+ 14: Uint16Field("AlarmClearSoakTime", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, false, false, 14),
+ },
+ Access: CreatedByOlt,
+ Support: UnknownSupport,
+ }
+}
+
+// NewDot1AgMep (class ID 302) 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 NewDot1AgMep(params ...ParamData) (*ManagedEntity, OmciErrors) {
+ return NewManagedEntity(*dot1agmepBME, params...)
+}