VOL-3787: Added alarm notification decode/AlarmMap support
Change-Id: I05e6188c279f26cd413e23ec068ff0993e7070c1
diff --git a/VERSION b/VERSION
index c37136a..ebf55b3 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.13.5
+0.13.6
diff --git a/generated/aal5performancemonitoringhistorydata.go b/generated/aal5performancemonitoringhistorydata.go
index c35225a..fe110a2 100644
--- a/generated/aal5performancemonitoringhistorydata.go
+++ b/generated/aal5performancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -107,6 +107,13 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Invalid fields",
+ 1: "CRC violation",
+ 2: "Reassembly timer expirations",
+ 3: "Buffer overflows",
+ 4: "Encap protocol errors",
+ },
}
}
diff --git a/generated/ani-g.go b/generated/ani-g.go
index 3cee643..022fcbf 100644
--- a/generated/ani-g.go
+++ b/generated/ani-g.go
@@ -14,7 +14,7 @@
* 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':
@@ -154,6 +154,15 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Low received optical power",
+ 1: "High received optical power",
+ 2: "SF",
+ 3: "SD",
+ 4: "Low transmit optical power",
+ 5: "High transmit optical power",
+ 6: "Laser bias current",
+ },
}
}
diff --git a/generated/callcontrolperformancemonitoringhistorydata.go b/generated/callcontrolperformancemonitoringhistorydata.go
index bb625a8..eb015ed 100644
--- a/generated/callcontrolperformancemonitoringhistorydata.go
+++ b/generated/callcontrolperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -106,6 +106,13 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "CCPM call set-up fail",
+ 1: "CCPM set-up timeout",
+ 2: "CCPM call terminate",
+ 3: "CCPM port release with no dialling",
+ 4: "CCPM port offhook timeout",
+ },
}
}
diff --git a/generated/cardholder.go b/generated/cardholder.go
index 077271e..0bd413f 100644
--- a/generated/cardholder.go
+++ b/generated/cardholder.go
@@ -14,7 +14,7 @@
* 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':
@@ -150,6 +150,13 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Plug-in circuit pack missing",
+ 1: "Plug-in type mismatch alarm",
+ 2: "Improper card removal",
+ 3: "Plug-in equipment ID mismatch alarm",
+ 4: "Protection switch",
+ },
}
}
diff --git a/generated/circuitpack.go b/generated/circuitpack.go
index dcf7528..e40e29a 100644
--- a/generated/circuitpack.go
+++ b/generated/circuitpack.go
@@ -14,7 +14,7 @@
* 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':
@@ -181,6 +181,14 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Equipment alarm",
+ 1: "Powering alarm",
+ 2: "Self-test failure",
+ 3: "Laser end of life",
+ 4: "Temperature yellow",
+ 5: "Temperature red",
+ },
}
}
diff --git a/generated/classsupport.go b/generated/classsupport.go
index 9cc9dc6..df47014 100644
--- a/generated/classsupport.go
+++ b/generated/classsupport.go
@@ -28,10 +28,11 @@
Ignored // OMCI supported, but underlying function is now
// The following two are specific unsupported Managed Entity Definitions
- UnsupportedManagedEntity // Unsupported ITU G.988 Class ID
- UnsupportedVendorSpecificManagedEntity // Unsupported Vendor Specific Class ID
+ UnsupportedManagedEntity // Unsupported ITU G.988 Class ID
+ UnsupportedVendorSpecificManagedEntity // Unsupported Vendor Specific Class ID
)
func (cs ClassSupport) String() string {
- return [...]string{"Unknown", "Supported", "Unsupported", "Partially Supported", "Ignored"}[cs]
+ return [...]string{"Unknown", "Supported", "Unsupported", "Partially Supported", "Ignored",
+ "Unsupported", "Vendor Specific"}[cs]
}
diff --git a/generated/dot1agmep.go b/generated/dot1agmep.go
index b3c6df4..8d6db66 100644
--- a/generated/dot1agmep.go
+++ b/generated/dot1agmep.go
@@ -14,7 +14,7 @@
* 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':
@@ -151,6 +151,15 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "RDI CCM",
+ 1: "MAC status",
+ 2: "Remote CCM",
+ 3: "Error CCM",
+ 4: "Xcon CCM",
+ 5: "Unexpected period",
+ 6: "AIS",
+ },
}
}
diff --git a/generated/dot1xperformancemonitoringhistorydata.go b/generated/dot1xperformancemonitoringhistorydata.go
index 4127089..fa9ebfd 100644
--- a/generated/dot1xperformancemonitoringhistorydata.go
+++ b/generated/dot1xperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -141,6 +141,10 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 4: "Invalid EAPOL frames received",
+ 9: "EAP length error frames received",
+ },
}
}
diff --git a/generated/dot1xportextensionpackage.go b/generated/dot1xportextensionpackage.go
index 018d136..428d9de 100644
--- a/generated/dot1xportextensionpackage.go
+++ b/generated/dot1xportextensionpackage.go
@@ -14,7 +14,7 @@
* 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':
@@ -137,6 +137,10 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "dot1x local authentication - allowed",
+ 1: "dot1x local authentication - denied",
+ },
}
}
diff --git a/generated/efmbondinggroup.go b/generated/efmbondinggroup.go
index 362c3ad..93df527 100644
--- a/generated/efmbondinggroup.go
+++ b/generated/efmbondinggroup.go
@@ -14,7 +14,7 @@
* 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':
@@ -90,6 +90,13 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Group down",
+ 1: "Group partial",
+ 2: "Group US rate low",
+ 3: "Group DS rate low",
+ 4: "4x rate ratio",
+ },
}
}
diff --git a/generated/efmbondinggroupperformancemonitoringhistorydata.go b/generated/efmbondinggroupperformancemonitoringhistorydata.go
index e924d55..902298a 100644
--- a/generated/efmbondinggroupperformancemonitoringhistorydata.go
+++ b/generated/efmbondinggroupperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -119,6 +119,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Rx bad fragments",
+ 1: "Rx lost fragments",
+ 2: "Rx lost starts",
+ 3: "Rx lost ends",
+ },
}
}
diff --git a/generated/efmbondinglink.go b/generated/efmbondinglink.go
index 1570d53..34db557 100644
--- a/generated/efmbondinglink.go
+++ b/generated/efmbondinglink.go
@@ -14,7 +14,7 @@
* 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':
@@ -77,6 +77,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Link down",
+ },
}
}
diff --git a/generated/enhancedfecperformancemonitoringhistorydata.go b/generated/enhancedfecperformancemonitoringhistorydata.go
index 150a9aa..40221e7 100644
--- a/generated/enhancedfecperformancemonitoringhistorydata.go
+++ b/generated/enhancedfecperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -102,6 +102,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Corrected bytes",
+ 1: "Corrected code words",
+ 2: "Uncorrectable code words",
+ 4: "FEC seconds",
+ },
}
}
diff --git a/generated/enhancedtcperformancemonitoringhistorydata.go b/generated/enhancedtcperformancemonitoringhistorydata.go
index e3c3fc2..0ea33d0 100644
--- a/generated/enhancedtcperformancemonitoringhistorydata.go
+++ b/generated/enhancedtcperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -142,6 +142,14 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "PSBd HEC error count",
+ 2: "XGTC HEC error count",
+ 3: "Unknown profile count",
+ 4: "XGEM HEC loss count",
+ 5: "XGEM key errors",
+ 6: "XGEM HEC error count",
+ },
}
}
diff --git a/generated/equipmentextensionpackage.go b/generated/equipmentextensionpackage.go
index df671a8..1deabe7 100644
--- a/generated/equipmentextensionpackage.go
+++ b/generated/equipmentextensionpackage.go
@@ -14,7 +14,7 @@
* 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':
@@ -76,6 +76,17 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Reserved",
+ 1: "Sense point 1",
+ 2: "Sense point 2",
+ 3: "Sense point 3",
+ 4: "Sense point 4",
+ 5: "Sense point 5",
+ 6: "Sense point 6",
+ 7: "Sense point 7",
+ 8: "Sense point 8",
+ },
}
}
diff --git a/generated/ethernetframeextendedpm.go b/generated/ethernetframeextendedpm.go
index 9f2c543..a4cfd62 100644
--- a/generated/ethernetframeextendedpm.go
+++ b/generated/ethernetframeextendedpm.go
@@ -14,7 +14,7 @@
* 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':
@@ -155,6 +155,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "Drop events",
+ 2: "CRC errored frames",
+ 3: "Undersize frames",
+ 4: "Oversize frames",
+ },
}
}
diff --git a/generated/ethernetframeextendedpm64-bit.go b/generated/ethernetframeextendedpm64-bit.go
index 9023d3b..625818a 100644
--- a/generated/ethernetframeextendedpm64-bit.go
+++ b/generated/ethernetframeextendedpm64-bit.go
@@ -14,7 +14,7 @@
* 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':
@@ -151,6 +151,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "Drop events",
+ 2: "CRC errored frames",
+ 3: "Undersize frames",
+ 4: "Oversize frames",
+ },
}
}
diff --git a/generated/ethernetframeperformancemonitoringhistorydatadownstream.go b/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
index 745bbe8..a535988 100644
--- a/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
+++ b/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
@@ -14,7 +14,7 @@
* 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':
@@ -152,6 +152,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Drop events",
+ 1: "CRC errored packets",
+ 2: "Undersize packets",
+ 3: "Oversize packets",
+ },
}
}
diff --git a/generated/ethernetframeperformancemonitoringhistorydataupstream.go b/generated/ethernetframeperformancemonitoringhistorydataupstream.go
index f104580..28df9cb 100644
--- a/generated/ethernetframeperformancemonitoringhistorydataupstream.go
+++ b/generated/ethernetframeperformancemonitoringhistorydataupstream.go
@@ -14,7 +14,7 @@
* 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':
@@ -160,6 +160,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Drop events",
+ 1: "CRC errored packets",
+ 2: "Undersize packets",
+ 3: "Oversize packets",
+ },
}
}
diff --git a/generated/ethernetperformancemonitoringhistorydata.go b/generated/ethernetperformancemonitoringhistorydata.go
index 9cdd51c..e0725b0 100644
--- a/generated/ethernetperformancemonitoringhistorydata.go
+++ b/generated/ethernetperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -152,6 +152,22 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "FCS errors",
+ 1: "Excessive collision counter",
+ 2: "Late collision counter",
+ 3: "Frames too long",
+ 4: "Buffer overflows on receive",
+ 5: "Buffer overflows on transmit",
+ 6: "Single collision frame counter",
+ 7: "Multiple collisions frame counter",
+ 8: "SQE counter",
+ 9: "Deferred transmission counter",
+ 10: "Internal MAC transmit error counter",
+ 11: "Carrier sense error counter",
+ 12: "Alignment error counter",
+ 13: "Internal MAC receive error counter",
+ },
}
}
diff --git a/generated/ethernetperformancemonitoringhistorydata2.go b/generated/ethernetperformancemonitoringhistorydata2.go
index 7503895..fd07bb6 100644
--- a/generated/ethernetperformancemonitoringhistorydata2.go
+++ b/generated/ethernetperformancemonitoringhistorydata2.go
@@ -14,7 +14,7 @@
* 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':
@@ -84,6 +84,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "PPPoE filtered frame counter",
+ },
}
}
diff --git a/generated/ethernetperformancemonitoringhistorydata3.go b/generated/ethernetperformancemonitoringhistorydata3.go
index 10da39b..1207ebc 100644
--- a/generated/ethernetperformancemonitoringhistorydata3.go
+++ b/generated/ethernetperformancemonitoringhistorydata3.go
@@ -14,7 +14,7 @@
* 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':
@@ -167,6 +167,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Drop events",
+ 1: "Undersize packets",
+ 2: "Fragments",
+ 3: "Jabbers",
+ },
}
}
diff --git a/generated/galethernetperformancemonitoringhistorydata.go b/generated/galethernetperformancemonitoringhistorydata.go
index 30b630f..722d200 100644
--- a/generated/galethernetperformancemonitoringhistorydata.go
+++ b/generated/galethernetperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -84,6 +84,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Discarded frames",
+ },
}
}
diff --git a/generated/geminterworkingterminationpoint.go b/generated/geminterworkingterminationpoint.go
index 6c70980..6b84a21 100644
--- a/generated/geminterworkingterminationpoint.go
+++ b/generated/geminterworkingterminationpoint.go
@@ -14,7 +14,7 @@
* 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':
@@ -106,6 +106,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Deprecated",
+ },
}
}
diff --git a/generated/gemportnetworkctp.go b/generated/gemportnetworkctp.go
index 2e7ce2b..be1c163 100644
--- a/generated/gemportnetworkctp.go
+++ b/generated/gemportnetworkctp.go
@@ -14,7 +14,7 @@
* 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':
@@ -135,6 +135,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 5: "End-to-end loss of continuity",
+ },
}
}
diff --git a/generated/gemportnetworkctpperformancemonitoringhistorydata.go b/generated/gemportnetworkctpperformancemonitoringhistorydata.go
index eb01e50..45b7c57 100644
--- a/generated/gemportnetworkctpperformancemonitoringhistorydata.go
+++ b/generated/gemportnetworkctpperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -113,6 +113,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "Encryption key errors",
+ },
}
}
diff --git a/generated/interworkingvccterminationpoint.go b/generated/interworkingvccterminationpoint.go
index 03af395..9bffbde 100644
--- a/generated/interworkingvccterminationpoint.go
+++ b/generated/interworkingvccterminationpoint.go
@@ -14,7 +14,7 @@
* 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':
@@ -109,6 +109,15 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "End-to-end VC AIS layer management indication receiving (LMIR)",
+ 1: "End-to-end VC RDI LMIR",
+ 2: "End-to-end VC AIS layer management indication generation (LMIG)",
+ 3: "End-to-end VC RDI LMIG",
+ 4: "Segment loss of continuity",
+ 5: "End-to-end loss of continuity",
+ 6: "CSA",
+ },
}
}
diff --git a/generated/iphostperformancemonitoringhistorydata.go b/generated/iphostperformancemonitoringhistorydata.go
index 318346a..23fe8a3 100644
--- a/generated/iphostperformancemonitoringhistorydata.go
+++ b/generated/iphostperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -107,6 +107,14 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "IPNPM ICMP error",
+ 2: "IPNPM DNS error",
+ 3: "DHCP timeout",
+ 4: "IP address conflict",
+ 5: "Out of memory",
+ 6: "Internal error",
+ },
}
}
diff --git a/generated/macbridgeconfigurationdata.go b/generated/macbridgeconfigurationdata.go
index 5b6a1c6..8718214 100644
--- a/generated/macbridgeconfigurationdata.go
+++ b/generated/macbridgeconfigurationdata.go
@@ -14,7 +14,7 @@
* 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':
diff --git a/generated/macbridgeperformancemonitoringhistorydata.go b/generated/macbridgeperformancemonitoringhistorydata.go
index 30acf13..668fcca 100644
--- a/generated/macbridgeperformancemonitoringhistorydata.go
+++ b/generated/macbridgeperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -87,6 +87,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Bridge learning entry discard",
+ },
}
}
diff --git a/generated/macbridgeportconfigurationdata.go b/generated/macbridgeportconfigurationdata.go
index d731e08..092986f 100644
--- a/generated/macbridgeportconfigurationdata.go
+++ b/generated/macbridgeportconfigurationdata.go
@@ -14,7 +14,7 @@
* 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':
@@ -131,6 +131,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Port blocking",
+ },
}
}
diff --git a/generated/macbridgeportperformancemonitoringhistorydata.go b/generated/macbridgeportperformancemonitoringhistorydata.go
index a6427dc..a6bcf4b 100644
--- a/generated/macbridgeportperformancemonitoringhistorydata.go
+++ b/generated/macbridgeportperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -104,6 +104,11 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "Delay exceeded discard",
+ 2: "MTU exceeded discard",
+ 4: "Received and discarded",
+ },
}
}
diff --git a/generated/me.go b/generated/me.go
index caa32bc..8bec058 100644
--- a/generated/me.go
+++ b/generated/me.go
@@ -14,7 +14,7 @@
* 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':
@@ -258,6 +258,17 @@
return nil
}
+// GetClassSupport returns the ONU support for this managed entity
+func (entity *ManagedEntity) GetClassSupport() ClassSupport {
+ return entity.definition.GetClassSupport()
+}
+
+// GetAlarmMap returns the Alarm Bit Number to Alarm Name (string) mapping. Nil is returned if
+// the managed entity does not support alarms
+func (entity *ManagedEntity) GetAlarmMap() AlarmMap {
+ return entity.definition.GetAlarmMap()
+}
+
// DecodeFromBytes decodes a Managed Entity give an octet stream pointing to the ME within a frame
func (entity *ManagedEntity) DecodeFromBytes(data []byte, p gopacket.PacketBuilder, msgType byte) error {
if len(data) < 6 {
diff --git a/generated/medef.go b/generated/medef.go
index 7cb85d2..767e27b 100644
--- a/generated/medef.go
+++ b/generated/medef.go
@@ -14,7 +14,7 @@
* 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':
@@ -33,14 +33,14 @@
// ManagedEntityDefinition defines a Manage Entity
type ManagedEntityDefinition struct {
- Name string
- ClassID ClassID
- MessageTypes mapset.Set // Mandatory
- // TODO: Support Optional Message types (this has just been fixed in the code generator)
+ Name string
+ ClassID ClassID
+ MessageTypes mapset.Set // Mandatory
AllowedAttributeMask uint16
AttributeDefinitions AttributeDefinitionMap
Access ClassAccess
Support ClassSupport
+ Alarms AlarmMap // AlarmBit -> AlarmName
}
func (bme *ManagedEntityDefinition) String() string {
@@ -79,6 +79,16 @@
return bme.AttributeDefinitions
}
+// GetClassSupport returns ONUs support of this class
+func (bme ManagedEntityDefinition) GetClassSupport() ClassSupport {
+ return bme.Support
+}
+
+// GetAlarmMap returns the Alarm bit number to name map
+func (bme ManagedEntityDefinition) GetAlarmMap() AlarmMap {
+ return bme.Alarms
+}
+
func (bme ManagedEntityDefinition) DecodeAttributes(mask uint16, data []byte, p gopacket.PacketBuilder, msgType byte) (AttributeValueMap, error) {
if (mask | bme.GetAllowedAttributeMask()) != bme.GetAllowedAttributeMask() {
// TODO: Provide custom error code so a response 'result' can properly be coded
diff --git a/generated/mgcconfigdata.go b/generated/mgcconfigdata.go
index 135b71b..ddd39fb 100644
--- a/generated/mgcconfigdata.go
+++ b/generated/mgcconfigdata.go
@@ -14,7 +14,7 @@
* 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':
@@ -133,6 +133,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Timeout",
+ },
}
}
diff --git a/generated/mgcperformancemonitoringhistorydata.go b/generated/mgcperformancemonitoringhistorydata.go
index 68805de..c9b6dc6 100644
--- a/generated/mgcperformancemonitoringhistorydata.go
+++ b/generated/mgcperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -127,6 +127,10 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "MGCP protocol errors",
+ 1: "MGCP transport losses",
+ },
}
}
diff --git a/generated/mocaethernetperformancemonitoringhistorydata.go b/generated/mocaethernetperformancemonitoringhistorydata.go
index 07dfbe9..b66845c 100644
--- a/generated/mocaethernetperformancemonitoringhistorydata.go
+++ b/generated/mocaethernetperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -133,6 +133,22 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Incoming unicast packets",
+ 1: "Incoming discarded packets",
+ 2: "Incoming errored packets",
+ 3: "Incoming unknown packets",
+ 4: "Incoming multicast packets",
+ 5: "Incoming broadcast packets",
+ 6: "Incoming octets",
+ 7: "Outgoing unicast packets",
+ 8: "Outgoing discarded packets",
+ 9: "Outgoing errored packets",
+ 10: "Outgoing unknown packets",
+ 11: "Outgoing multicast packets",
+ 12: "Outgoing broadcast packets",
+ 13: "Outgoing octets",
+ },
}
}
diff --git a/generated/multicastgeminterworkingterminationpoint.go b/generated/multicastgeminterworkingterminationpoint.go
index 80c7bcb..bde9b12 100644
--- a/generated/multicastgeminterworkingterminationpoint.go
+++ b/generated/multicastgeminterworkingterminationpoint.go
@@ -14,7 +14,7 @@
* 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':
@@ -162,6 +162,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Deprecated",
+ },
}
}
diff --git a/generated/omcidefs.go b/generated/omcidefs.go
index 4b7367b..8924e7d 100644
--- a/generated/omcidefs.go
+++ b/generated/omcidefs.go
@@ -14,7 +14,7 @@
* 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':
@@ -51,6 +51,10 @@
// from the ITU-T G.988 specification.
type ClassID uint16
+// AlarmMap is a mapping of alarm bit numbers to alarm names and can be
+// used during decode of Alarm Notification messages
+type AlarmMap map[uint8]string
+
func (cid ClassID) String() string {
if entity, err := LoadManagedEntityDefinition(cid); err.StatusCode() == Success {
return fmt.Sprintf("[%s] (%d/%#x)",
@@ -255,6 +259,7 @@
GetMessageTypes() mapset.Set
GetAllowedAttributeMask() uint16
GetAttributeDefinitions() AttributeDefinitionMap
+ GetAlarmMap() AlarmMap
DecodeAttributes(uint16, []byte, gopacket.PacketBuilder, byte) (AttributeValueMap, error)
SerializeAttributes(AttributeValueMap, uint16, gopacket.SerializeBuffer, byte, int, bool) (error, uint16)
diff --git a/generated/physicalpathterminationpointcesuni.go b/generated/physicalpathterminationpointcesuni.go
index 68f4887..cc66a16 100644
--- a/generated/physicalpathterminationpointcesuni.go
+++ b/generated/physicalpathterminationpointcesuni.go
@@ -14,7 +14,7 @@
* 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':
@@ -143,6 +143,31 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "TF",
+ 1: "LOS",
+ 2: "LOF",
+ 3: "OOF",
+ 4: "RAI",
+ 5: "1.5 M BAIS",
+ 6: "R-INH",
+ 7: "6M REC",
+ 8: "6M SEND",
+ 9: "6M ERR",
+ 10: "6M BERR",
+ 11: "34M REC",
+ 12: "34M AIS",
+ 13: "2M REC",
+ 14: "2M AIS",
+ 15: "1.5M REC",
+ 16: "1.5 AIS",
+ 17: "INFO0",
+ 18: "45M RDI",
+ 19: "45M AIS",
+ 20: "AIS-CI",
+ 21: "DS1 idle",
+ 22: "RAI-CI",
+ },
}
}
diff --git a/generated/physicalpathterminationpointethernetuni.go b/generated/physicalpathterminationpointethernetuni.go
index ae562a0..063e742 100644
--- a/generated/physicalpathterminationpointethernetuni.go
+++ b/generated/physicalpathterminationpointethernetuni.go
@@ -14,7 +14,7 @@
* 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':
@@ -152,6 +152,9 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "LAN-LOS",
+ },
}
}
diff --git a/generated/physicalpathterminationpointmocauni.go b/generated/physicalpathterminationpointmocauni.go
index a8cc094..59652da 100644
--- a/generated/physicalpathterminationpointmocauni.go
+++ b/generated/physicalpathterminationpointmocauni.go
@@ -14,7 +14,7 @@
* 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':
@@ -151,6 +151,10 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "MoCA LOL",
+ 1: "MoCA limited link (LL)",
+ },
}
}
diff --git a/generated/physicalpathterminationpointreuni.go b/generated/physicalpathterminationpointreuni.go
index f6bc1f1..462fad6 100644
--- a/generated/physicalpathterminationpointreuni.go
+++ b/generated/physicalpathterminationpointreuni.go
@@ -14,7 +14,7 @@
* 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':
@@ -180,6 +180,14 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Low received optical power",
+ 1: "High received optical power",
+ 2: "Low transmit optical power",
+ 3: "High transmit optical power",
+ 4: "High laser bias current",
+ 5: "S'/R' LOS",
+ },
}
}
diff --git a/generated/physicalpathterminationpointvideoani.go b/generated/physicalpathterminationpointvideoani.go
index 0a3d356..39d03e6 100644
--- a/generated/physicalpathterminationpointvideoani.go
+++ b/generated/physicalpathterminationpointvideoani.go
@@ -14,7 +14,7 @@
* 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':
@@ -154,6 +154,11 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Video LOS",
+ 1: "Video OOR low",
+ 2: "Video OOR high",
+ },
}
}
diff --git a/generated/physicalpathterminationpointvideouni.go b/generated/physicalpathterminationpointvideouni.go
index ebbf415..fbd31d0 100644
--- a/generated/physicalpathterminationpointvideouni.go
+++ b/generated/physicalpathterminationpointvideouni.go
@@ -14,7 +14,7 @@
* 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':
@@ -102,6 +102,11 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Video-LOS",
+ 1: "Video-OOR-low",
+ 2: "Video-OOR-high",
+ },
}
}
diff --git a/generated/physicalpathterminationpointxdslunipart1.go b/generated/physicalpathterminationpointxdslunipart1.go
index fd720a3..fa883bc 100644
--- a/generated/physicalpathterminationpointxdslunipart1.go
+++ b/generated/physicalpathterminationpointxdslunipart1.go
@@ -14,7 +14,7 @@
* 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':
@@ -152,6 +152,31 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "NE LOF",
+ 1: "NE LOS",
+ 2: "NE LOL",
+ 3: "NE LPR",
+ 4: "Card alm",
+ 5: "FE LOF",
+ 6: "FE LOS",
+ 7: "FE LOL",
+ 8: "FE LPR",
+ 9: "DRT up",
+ 10: "DRT down",
+ 11: "LINIT",
+ 12: "LCD",
+ 13: "NCD",
+ 14: "LCD-FE",
+ 15: "NCD-FE",
+ 16: "File not found",
+ 17: "OOS",
+ 18: "OOS-FE",
+ 19: "LOR",
+ 20: "LOM",
+ 21: "LOR-FE",
+ 22: "LOM-FE",
+ },
}
}
diff --git a/generated/priorityqueue.go b/generated/priorityqueue.go
index 0226bf6..4022649 100644
--- a/generated/priorityqueue.go
+++ b/generated/priorityqueue.go
@@ -14,7 +14,7 @@
* 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':
@@ -219,6 +219,9 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Block loss",
+ },
}
}
diff --git a/generated/pseudowireperformancemonitoringhistorydata.go b/generated/pseudowireperformancemonitoringhistorydata.go
index 5799375..fc44a16 100644
--- a/generated/pseudowireperformancemonitoringhistorydata.go
+++ b/generated/pseudowireperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -165,6 +165,18 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Missing packets",
+ 1: "Misordered packets, usable",
+ 2: "Misordered packets dropped",
+ 3: "Playout buffer underruns/overruns",
+ 4: "Malformed packets",
+ 5: "Stray packets",
+ 6: "Remote packet loss",
+ 7: "ES",
+ 8: "SES",
+ 9: "UAS",
+ },
}
}
diff --git a/generated/pwatmperformancemonitoringhistorydata.go b/generated/pwatmperformancemonitoringhistorydata.go
index c68a56c..44442e0 100644
--- a/generated/pwatmperformancemonitoringhistorydata.go
+++ b/generated/pwatmperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -112,6 +112,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "Downstream missing packets",
+ 2: "Downstream reordered packets",
+ 3: "Downstream timeout packets",
+ 4: "Upstream dropped cells",
+ },
}
}
diff --git a/generated/radiusperformancemonitoringhistorydata.go b/generated/radiusperformancemonitoringhistorydata.go
index 08953b6..778ea9f 100644
--- a/generated/radiusperformancemonitoringhistorydata.go
+++ b/generated/radiusperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -110,6 +110,10 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "Retransmission count",
+ 5: "Invalid radius packets received",
+ },
}
}
diff --git a/generated/reani-g.go b/generated/reani-g.go
index 5142e5c..6b696d6 100644
--- a/generated/reani-g.go
+++ b/generated/reani-g.go
@@ -14,7 +14,7 @@
* 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':
@@ -185,6 +185,13 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Low received optical power",
+ 1: "High received optical power",
+ 2: "Low transmit optical power",
+ 3: "High transmit optical power",
+ 4: "High laser bias current",
+ },
}
}
diff --git a/generated/recommonamplifierparameters.go b/generated/recommonamplifierparameters.go
index 637a758..bc83606 100644
--- a/generated/recommonamplifierparameters.go
+++ b/generated/recommonamplifierparameters.go
@@ -14,7 +14,7 @@
* 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':
@@ -132,6 +132,15 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Low gain",
+ 1: "High gain",
+ 2: "Low temperature",
+ 3: "High temperature",
+ 4: "High bias current",
+ 5: "High temperature shutdown",
+ 6: "High current shutdown",
+ },
}
}
diff --git a/generated/redownstreamamplifier.go b/generated/redownstreamamplifier.go
index 59d758b..f5176d9 100644
--- a/generated/redownstreamamplifier.go
+++ b/generated/redownstreamamplifier.go
@@ -14,7 +14,7 @@
* 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':
@@ -155,6 +155,13 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Low received optical power",
+ 1: "High received optical power",
+ 2: "Low transmit optical power",
+ 3: "High transmit optical power",
+ 4: "High laser bias current",
+ },
}
}
diff --git a/generated/reupstreamamplifier.go b/generated/reupstreamamplifier.go
index 0f81c6a..df21ac2 100644
--- a/generated/reupstreamamplifier.go
+++ b/generated/reupstreamamplifier.go
@@ -14,7 +14,7 @@
* 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':
@@ -163,6 +163,14 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Low received optical power",
+ 1: "High received optical power",
+ 2: "Low transmit optical power",
+ 3: "High transmit optical power",
+ 4: "High laser bias current",
+ 5: "S'/R' LOS",
+ },
}
}
diff --git a/generated/rtpperformancemonitoringhistorydata.go b/generated/rtpperformancemonitoringhistorydata.go
index 9fb4891..4576186 100644
--- a/generated/rtpperformancemonitoringhistorydata.go
+++ b/generated/rtpperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -116,6 +116,14 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "RTP errors",
+ 1: "Packet loss(Note 1)",
+ 2: "Maximum jitter",
+ 3: "Max time between RTCP packets",
+ 4: "Buffer underflows",
+ 5: "Buffer overflows",
+ },
}
}
diff --git a/generated/sipagentconfigdata.go b/generated/sipagentconfigdata.go
index f6dedcb..ca86d96 100644
--- a/generated/sipagentconfigdata.go
+++ b/generated/sipagentconfigdata.go
@@ -14,7 +14,7 @@
* 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':
@@ -169,6 +169,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "SIP-UA register name",
+ 1: "SIP-UA register reach",
+ 2: "SIP-UA register connect",
+ 3: "SIP-UA register validate",
+ },
}
}
diff --git a/generated/sipagentperformancemonitoringhistorydata.go b/generated/sipagentperformancemonitoringhistorydata.go
index 0759e1c..30b8e75 100644
--- a/generated/sipagentperformancemonitoringhistorydata.go
+++ b/generated/sipagentperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -143,6 +143,14 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "SIPAMD Rx invite req",
+ 1: "SIPAMD Rx invite req retransmission",
+ 2: "SIPAMD Rx noninvite req",
+ 3: "SIPAMD Rx noninvite req retransmission",
+ 4: "SIPAMD Rx response",
+ 5: "SIPAMD Rx response retransmission",
+ },
}
}
diff --git a/generated/sipcallinitiationperformancemonitoringhistorydata.go b/generated/sipcallinitiationperformancemonitoringhistorydata.go
index f1d3990..ed9534f 100644
--- a/generated/sipcallinitiationperformancemonitoringhistorydata.go
+++ b/generated/sipcallinitiationperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -106,6 +106,13 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "SIP call PM failed connect",
+ 1: "SIP call PM failed to validate",
+ 2: "SIP call PM timeout",
+ 3: "SIP call PM failure error code received",
+ 4: "SIP call PM failed to authenticate",
+ },
}
}
diff --git a/generated/sipuserdata.go b/generated/sipuserdata.go
index d8ee85f..fe7bbab 100644
--- a/generated/sipuserdata.go
+++ b/generated/sipuserdata.go
@@ -14,7 +14,7 @@
* 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':
@@ -140,6 +140,11 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "SIP-UA register auth",
+ 1: "SIP-UA register timeout",
+ 2: "SIP-UA register fail",
+ },
}
}
diff --git a/generated/tcadaptorperformancemonitoringhistorydataxdsl.go b/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
index fc4e55a..2ee8a6b 100644
--- a/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
+++ b/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
@@ -14,7 +14,7 @@
* 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':
@@ -120,6 +120,16 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Near-end HEC violation",
+ 1: "Near-end idle cell bit error count",
+ 2: "Far-end HEC violation count",
+ 3: "Far-end idle cell bit error count",
+ 4: "Near-end delineated total cell count (CD-P)",
+ 5: "Near-end user total cell count (CU-P)",
+ 6: "Far-end delineated total cell count (CD-PFE)",
+ 7: "Far-end user total cell count (CU-PFE)",
+ },
}
}
diff --git a/generated/tcpudpperformancemonitoringhistorydata.go b/generated/tcpudpperformancemonitoringhistorydata.go
index ec7567f..eb1833f 100644
--- a/generated/tcpudpperformancemonitoringhistorydata.go
+++ b/generated/tcpudpperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -103,6 +103,13 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "Socket failed",
+ 2: "Listen failed",
+ 3: "Bind failed",
+ 4: "Accept failed",
+ 5: "Select failed",
+ },
}
}
diff --git a/generated/twdmchannelphylodsperformancemonitoringhistorydata.go b/generated/twdmchannelphylodsperformancemonitoringhistorydata.go
index c8d3a2a..db46818 100644
--- a/generated/twdmchannelphylodsperformancemonitoringhistorydata.go
+++ b/generated/twdmchannelphylodsperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -157,6 +157,20 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "BIP-32 bit error count",
+ 2: "PSBd HEC errors - corrected",
+ 3: "PSBd HEC errors - uncorrectable",
+ 4: "FS header errors - corrected",
+ 5: "FS header errors - uncorrectable",
+ 6: "Total LODS event count",
+ 7: "LODS - restored in operating TWDM channel",
+ 8: "LODS - restored in protection TWDM channel",
+ 9: "LODS - restored in discretionary TWDM channel",
+ 10: "LODS - reactivations",
+ 11: "LODS - handshake failure in protection channel",
+ 12: "LODS - handshake failure in discretionary channel",
+ },
}
}
diff --git a/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go b/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go
index ca8616f..2633fc5 100644
--- a/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go
+++ b/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go
@@ -14,7 +14,7 @@
* 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':
@@ -121,6 +121,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "PLOAM MIC errors",
+ },
}
}
diff --git a/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go b/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go
index 439178f..4dfaa75 100644
--- a/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go
+++ b/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go
@@ -14,7 +14,7 @@
* 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':
@@ -161,6 +161,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Unsatisfied Adjust_Tx_Wavelength requests",
+ },
}
}
diff --git a/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go b/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go
index b1ef66b..739dc56 100644
--- a/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go
+++ b/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go
@@ -14,7 +14,7 @@
* 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':
@@ -138,6 +138,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Change_Power_Level parameter error count",
+ },
}
}
diff --git a/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go b/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go
index 07eb432..9e7d0e3 100644
--- a/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go
+++ b/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go
@@ -14,7 +14,7 @@
* 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':
@@ -161,6 +161,21 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Tuning control requests rejected/DS_ALBL",
+ 1: "Tuning control requests rejected/DS_VOID",
+ 2: "Tuning control requests rejected/DS_PART",
+ 3: "Tuning control requests rejected/DS_TUNR",
+ 4: "Tuning control requests rejected/DS_LNRT",
+ 5: "Tuning control requests rejected/DS_LNCD",
+ 6: "Tuning control requests rejected/US_ALBL",
+ 7: "Tuning control requests rejected/US_VOID",
+ 8: "Tuning control requests rejected/US_TUNR",
+ 9: "Tuning control requests rejected/US_CLBR",
+ 10: "Tuning control requests rejected/US_LKTP",
+ 11: "Tuning control requests rejected/US_LNRT",
+ 12: "Tuning control requests rejected/US_LNCD",
+ },
}
}
diff --git a/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go b/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go
index daa8201..ce12a7b 100644
--- a/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go
+++ b/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go
@@ -14,7 +14,7 @@
* 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':
@@ -132,6 +132,16 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Tuning control requests Rollback/DS_ALBL",
+ 1: "Tuning control requests Rollback /DS_LKTP",
+ 2: "Tuning control requests Rollback/US_ALBL",
+ 3: "Tuning control requests Rollback /US_VOID",
+ 4: "Tuning control requests Rollback/US_TUNR",
+ 5: "Tuning control requests Rollback /US_LKTP",
+ 6: "Tuning control requests Rollback/US_LNRT",
+ 7: "Tuning control requests Rollback /US_LNCD",
+ },
}
}
diff --git a/generated/version.go b/generated/version.go
index 672c71b..f4946e0 100644
--- a/generated/version.go
+++ b/generated/version.go
@@ -14,7 +14,7 @@
* 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':
@@ -64,9 +64,9 @@
Versions = append(Versions,
VersionInfo{
Name: "code-generator",
- Version: "0.15.1",
- CreateTime: 1581435018.598259,
- ItuDocName: "T-REC-G.988-2017-11.docx",
+ Version: "0.15.6",
+ CreateTime: 1612285143.0049334,
+ ItuDocName: "T-REC-G.988-201711-I!!MSW-E.docx",
SHA256: "96ffc8bca6f70175c8e281e87e1cf21662d07a7502ebf595c5c3180a9972b9ac",
})
}
diff --git a/generated/virtualethernetinterfacepoint.go b/generated/virtualethernetinterfacepoint.go
index dd8c881..4312a19 100644
--- a/generated/virtualethernetinterfacepoint.go
+++ b/generated/virtualethernetinterfacepoint.go
@@ -14,7 +14,7 @@
* 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':
@@ -108,6 +108,9 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Connecting function fail",
+ },
}
}
diff --git a/generated/voipconfigdata.go b/generated/voipconfigdata.go
index d54be1c..9da4493 100644
--- a/generated/voipconfigdata.go
+++ b/generated/voipconfigdata.go
@@ -14,7 +14,7 @@
* 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':
@@ -104,6 +104,24 @@
},
Access: CreatedByOnu,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "VCD config server name",
+ 1: "VCD config server reach",
+ 2: "VCD config server connect",
+ 3: "VCD config server validate",
+ 4: "VCD config server auth",
+ 5: "VCD config server timeout",
+ 6: "VCD config server fail",
+ 7: "VCD config file error",
+ 8: "VCD subscription name",
+ 9: "VCD subscription reach",
+ 10: "VCD subscription connect",
+ 11: "VCD subscription validate",
+ 12: "VCD subscription auth",
+ 13: "VCD subscription timeout",
+ 14: "VCD subscription fail",
+ 15: "VCD reboot request",
+ },
}
}
diff --git a/generated/vpnetworkctp.go b/generated/vpnetworkctp.go
index 922c43e..af565dd 100644
--- a/generated/vpnetworkctp.go
+++ b/generated/vpnetworkctp.go
@@ -14,7 +14,7 @@
* 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':
@@ -103,6 +103,14 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "VP AIS LMIR",
+ 1: "VP RDI LMIR",
+ 2: "VP AIS LMIG",
+ 3: "VP RDI LMIG",
+ 4: "Segment loss of continuity",
+ 5: "End-to-end loss of continuity",
+ },
}
}
diff --git a/generated/vpperformancemonitoringhistorydata.go b/generated/vpperformancemonitoringhistorydata.go
index 4039e8e..4f98c8c 100644
--- a/generated/vpperformancemonitoringhistorydata.go
+++ b/generated/vpperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -112,6 +112,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Lost CLP-= 0-+ 1 cells",
+ 1: "Lost CLP-= 0 cells",
+ 2: "Misinserted cells",
+ 3: "Impaired blocks",
+ },
}
}
diff --git a/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go b/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
index 8cd69ae..2e1b0e5 100644
--- a/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
+++ b/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -110,6 +110,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Corrected blocks",
+ 1: "Uncorrected blocks",
+ 2: "Code violations",
+ 3: "Forward error corrections",
+ },
}
}
diff --git a/generated/xdslxtu-cperformancemonitoringhistorydata.go b/generated/xdslxtu-cperformancemonitoringhistorydata.go
index fb1dee8..287df45 100644
--- a/generated/xdslxtu-cperformancemonitoringhistorydata.go
+++ b/generated/xdslxtu-cperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -152,6 +152,20 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Loss of frame seconds",
+ 1: "Loss of signal seconds",
+ 2: "Loss of link seconds",
+ 3: "Loss of power seconds",
+ 4: "Errored seconds",
+ 5: "Severely errored seconds",
+ 6: "Line initializations",
+ 7: "Failed line initializations",
+ 8: "Short initializations",
+ 9: "Failed short initializations",
+ 10: "FEC seconds",
+ 11: "Unavailable seconds",
+ },
}
}
diff --git a/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go b/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
index df422ef..eaa7e22 100644
--- a/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
+++ b/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
@@ -14,7 +14,7 @@
* 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':
@@ -95,6 +95,9 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "leftr defect seconds",
+ },
}
}
diff --git a/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go b/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
index a6cbe43..b1343c6 100644
--- a/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
+++ b/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -113,6 +113,12 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Corrected blocks",
+ 1: "Uncorrected blocks",
+ 2: "Code violations",
+ 3: "Forward error corrections",
+ },
}
}
diff --git a/generated/xdslxtu-rperformancemonitoringhistorydata.go b/generated/xdslxtu-rperformancemonitoringhistorydata.go
index 1482405..56f8ca5 100644
--- a/generated/xdslxtu-rperformancemonitoringhistorydata.go
+++ b/generated/xdslxtu-rperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -127,6 +127,16 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 0: "Loss of frame seconds",
+ 1: "Loss of signal seconds",
+ 2: "Loss of power seconds",
+ 3: "Errored seconds",
+ 4: "Severely errored seconds",
+ 5: "FEC seconds",
+ 6: "Unavailable seconds",
+ 7: "leftr defect seconds",
+ },
}
}
diff --git a/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go b/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
index 43dbb8d..2371b91 100644
--- a/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
+++ b/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -152,6 +152,10 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "PLOAM MIC error count",
+ 2: "OMCI MIC error count",
+ },
}
}
diff --git a/generated/xg-pontcperformancemonitoringhistorydata.go b/generated/xg-pontcperformancemonitoringhistorydata.go
index 35a899f..e9cf5b0 100644
--- a/generated/xg-pontcperformancemonitoringhistorydata.go
+++ b/generated/xg-pontcperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
* 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':
@@ -143,6 +143,14 @@
},
Access: CreatedByOlt,
Support: UnknownSupport,
+ Alarms: AlarmMap{
+ 1: "PSBd HEC error count",
+ 2: "XGTC HEC error count",
+ 3: "Unknown profile count",
+ 4: "XGEM HEC loss count",
+ 5: "XGEM key errors",
+ 6: "XGEM HEC error count",
+ },
}
}
diff --git a/messagetypes.go b/messagetypes.go
index 614204d..8cca403 100644
--- a/messagetypes.go
+++ b/messagetypes.go
@@ -21,8 +21,8 @@
"encoding/binary"
"errors"
"fmt"
- me "github.com/opencord/omci-lib-go/generated"
"github.com/google/gopacket"
+ me "github.com/opencord/omci-lib-go/generated"
)
// MessageType is the OMCI Message Type or'ed with the AR/AK flags as appropriate.
@@ -1590,6 +1590,20 @@
msg := fmt.Sprintf("invalid alarm number: %v, must be 0..224", alarmNumber)
return false, errors.New(msg)
}
+ entity, omciErr := me.LoadManagedEntityDefinition(omci.EntityClass,
+ me.ParamData{EntityID: omci.EntityInstance})
+ if omciErr.StatusCode() != me.Success {
+ return false, omciErr.GetError()
+ }
+ alarmMap := entity.GetAlarmMap()
+ if alarmMap == nil {
+ msg := "Managed Entity does not support Alarm notifications"
+ return false, errors.New(msg)
+ }
+ if _, ok := alarmMap[alarmNumber]; !ok {
+ msg := fmt.Sprintf("unsupported invalid alarm number: %v", alarmNumber)
+ return false, errors.New(msg)
+ }
octet := alarmNumber / 8
bit := 7 - (alarmNumber % 8)
return omci.AlarmBitmap[octet]>>bit == 1, nil
@@ -1600,6 +1614,19 @@
msg := fmt.Sprintf("invalid alarm number: %v, must be 0..224", alarmNumber)
return false, errors.New(msg)
}
+ entity, omciErr := me.LoadManagedEntityDefinition(omci.EntityClass,
+ me.ParamData{EntityID: omci.EntityInstance})
+ if omciErr.StatusCode() != me.Success {
+ return false, omciErr.GetError()
+ }
+ alarmMap := entity.GetAlarmMap()
+ if alarmMap == nil {
+ return false, errors.New("Managed Entity does not support Alarm notifications")
+ }
+ if _, ok := alarmMap[alarmNumber]; !ok {
+ msg := fmt.Sprintf("unsupported invalid alarm number: %v", alarmNumber)
+ return false, errors.New(msg)
+ }
octet := alarmNumber / 8
bit := 7 - (alarmNumber % 8)
return omci.AlarmBitmap[octet]>>bit == 0, nil
@@ -1610,6 +1637,19 @@
msg := fmt.Sprintf("invalid alarm number: %v, must be 0..224", alarmNumber)
return errors.New(msg)
}
+ entity, omciErr := me.LoadManagedEntityDefinition(omci.EntityClass,
+ me.ParamData{EntityID: omci.EntityInstance})
+ if omciErr.StatusCode() != me.Success {
+ return omciErr.GetError()
+ }
+ alarmMap := entity.GetAlarmMap()
+ if alarmMap == nil {
+ return errors.New("Managed Entity does not support Alarm notifications")
+ }
+ if _, ok := alarmMap[alarmNumber]; !ok {
+ msg := fmt.Sprintf("unsupported invalid alarm number: %v", alarmNumber)
+ return errors.New(msg)
+ }
octet := alarmNumber / 8
bit := 7 - (alarmNumber % 8)
omci.AlarmBitmap[octet] |= 1 << bit
@@ -1621,6 +1661,19 @@
msg := fmt.Sprintf("invalid alarm number: %v, must be 0..224", alarmNumber)
return errors.New(msg)
}
+ entity, omciErr := me.LoadManagedEntityDefinition(omci.EntityClass,
+ me.ParamData{EntityID: omci.EntityInstance})
+ if omciErr.StatusCode() != me.Success {
+ return omciErr.GetError()
+ }
+ alarmMap := entity.GetAlarmMap()
+ if alarmMap == nil {
+ return errors.New("Managed Entity does not support Alarm notifications")
+ }
+ if _, ok := alarmMap[alarmNumber]; !ok {
+ msg := fmt.Sprintf("unsupported invalid alarm number: %v", alarmNumber)
+ return errors.New(msg)
+ }
octet := alarmNumber / 8
bit := 7 - (alarmNumber % 8)
omci.AlarmBitmap[octet] &= ^(1 << bit)
@@ -1634,27 +1687,31 @@
if err != nil {
return err
}
- //var meDefinition me.IManagedEntityDefinition
- //meDefinition, err = me.LoadManagedEntityDefinition(omci.EntityClass,
- // me.ParamData{EntityID: omci.EntityInstance})
- //if err != nil {
- // return err
- //}
- // ME needs to support Alarms
- // TODO: Add attribute to ME to specify that alarm is allowed
- //if !me.SupportsMsgType(meDefinition, me.MibReset) {
- // return me.NewProcesssingError("managed entity does not support MIB Reset Message-Type")
- //}
- for index, octet := range data[4 : (AlarmBitmapSize/8)-4] {
- omci.AlarmBitmap[index] = octet
+ meDefinition, omciErr := me.LoadManagedEntityDefinition(omci.EntityClass,
+ me.ParamData{EntityID: omci.EntityInstance})
+ if omciErr.StatusCode() != me.Success {
+ return omciErr.GetError()
}
- padOffset := 4 + (AlarmBitmapSize / 8)
- omci.zeroPadding[0] = data[padOffset]
- omci.zeroPadding[1] = data[padOffset+1]
- omci.zeroPadding[2] = data[padOffset+2]
+ // Is this an unsupported or vendor specific ME. If so, it is not an error to decode
+ // the alarms. We just cannot provide any alarm names. Handle decode here.
+ classSupport := meDefinition.GetClassSupport()
+ isUnsupported := classSupport == me.UnsupportedManagedEntity ||
+ classSupport == me.UnsupportedVendorSpecificManagedEntity
- omci.AlarmSequenceNumber = data[padOffset+3]
- return nil
+ // Look for a non-nil/not empty Alarm Map to determine if this ME supports alarms
+ if alarmMap := meDefinition.GetAlarmMap(); isUnsupported || (alarmMap != nil && len(alarmMap) > 0) {
+ for index, octet := range data[4 : (AlarmBitmapSize/8)-4] {
+ omci.AlarmBitmap[index] = octet
+ }
+ padOffset := 4 + (AlarmBitmapSize / 8)
+ omci.zeroPadding[0] = data[padOffset]
+ omci.zeroPadding[1] = data[padOffset+1]
+ omci.zeroPadding[2] = data[padOffset+2]
+
+ omci.AlarmSequenceNumber = data[padOffset+3]
+ return nil
+ }
+ return me.NewProcessingError("managed entity does not support alarm notifications")
}
func decodeAlarmNotification(data []byte, p gopacket.PacketBuilder) error {
diff --git a/messagetypes_test.go b/messagetypes_test.go
index c3ad0df..4e29cc6 100644
--- a/messagetypes_test.go
+++ b/messagetypes_test.go
@@ -19,9 +19,9 @@
import (
"encoding/base64"
"fmt"
+ "github.com/google/gopacket"
. "github.com/opencord/omci-lib-go"
me "github.com/opencord/omci-lib-go/generated"
- "github.com/google/gopacket"
"github.com/stretchr/testify/assert"
"strings"
"testing"
@@ -2577,11 +2577,125 @@
})
assert.Equal(t, request.AlarmSequenceNumber, byte(5))
+ // Active/Clear tests
+ active, err2 := request.IsAlarmActive(0)
+ clear, err3 := request.IsAlarmClear(0)
+ assert.Nil(t, err2)
+ assert.Nil(t, err3)
+ assert.True(t, active)
+ assert.False(t, clear)
+
+ // Active/Clear for undefined alarm bits
+ active, err2 = request.IsAlarmActive(1)
+ clear, err3 = request.IsAlarmClear(1)
+ assert.NotNil(t, err2)
+ assert.NotNil(t, err3)
+
// Verify string output for message
packetString := packet.String()
assert.NotZero(t, len(packetString))
}
+func TestInvalidClassAlarmNotificationDecode(t *testing.T) {
+ // Choosing GalEthernetProfile (272) since it does not support alarms, show we should
+ // file the decode
+ badMessage := "0000100a01100104800000000000000000000000000000000000000000000000000000000000000500000028"
+ data, err := stringToPacket(badMessage)
+ assert.NoError(t, err)
+
+ packet := gopacket.NewPacket(data, LayerTypeOMCI, gopacket.NoCopy)
+ assert.NotNil(t, packet)
+
+ omciLayer := packet.Layer(LayerTypeOMCI)
+ assert.NotNil(t, packet)
+
+ omciMsg, ok := omciLayer.(*OMCI)
+ assert.True(t, ok)
+ assert.Equal(t, omciMsg.TransactionID, uint16(0x0))
+ assert.Equal(t, omciMsg.MessageType, AlarmNotificationType)
+ assert.Equal(t, omciMsg.DeviceIdentifier, BaselineIdent)
+ assert.Equal(t, omciMsg.Length, uint16(40))
+
+ msgLayer := packet.Layer(LayerTypeAlarmNotification)
+ assert.Nil(t, msgLayer)
+
+ request, ok2 := msgLayer.(*AlarmNotificationMsg)
+ assert.False(t, ok2)
+ assert.Nil(t, request)
+}
+
+func TestUnknownsMeAlarmNotificationDecode(t *testing.T) {
+ // Choosing class ID 22 since it is in the G.988 class ID space and is reserved
+ goodMessage := "0000100a00160104800000000000000000000000000000000000000000000000000000000000000500000028"
+ data, err := stringToPacket(goodMessage)
+ assert.NoError(t, err)
+
+ packet := gopacket.NewPacket(data, LayerTypeOMCI, gopacket.NoCopy)
+ assert.NotNil(t, packet)
+
+ omciLayer := packet.Layer(LayerTypeOMCI)
+ assert.NotNil(t, packet)
+
+ omciMsg, ok := omciLayer.(*OMCI)
+ assert.True(t, ok)
+ assert.Equal(t, omciMsg.TransactionID, uint16(0x0))
+ assert.Equal(t, omciMsg.MessageType, AlarmNotificationType)
+ assert.Equal(t, omciMsg.DeviceIdentifier, BaselineIdent)
+ assert.Equal(t, omciMsg.Length, uint16(40))
+
+ msgLayer := packet.Layer(LayerTypeAlarmNotification)
+ assert.NotNil(t, msgLayer)
+
+ request, ok2 := msgLayer.(*AlarmNotificationMsg)
+ assert.True(t, ok2)
+ assert.NotNil(t, request)
+ assert.Equal(t, request.EntityClass, me.ClassID(22))
+ assert.Equal(t, request.EntityInstance, uint16(0x104))
+ assert.Equal(t, request.AlarmBitmap, [28]byte{
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ })
+ assert.Equal(t, request.AlarmSequenceNumber, byte(5))
+}
+
+func TestVendorSpecificAlarmNotificationDecode(t *testing.T) {
+ // Choosing class ID 255 since it is in the first vendor specific class ID space
+ goodMessage := "0000100a00FF0104800000000000000000000000000000000000000000000000000000000000000500000028"
+ data, err := stringToPacket(goodMessage)
+ assert.NoError(t, err)
+
+ packet := gopacket.NewPacket(data, LayerTypeOMCI, gopacket.NoCopy)
+ assert.NotNil(t, packet)
+
+ omciLayer := packet.Layer(LayerTypeOMCI)
+ assert.NotNil(t, packet)
+
+ omciMsg, ok := omciLayer.(*OMCI)
+ assert.True(t, ok)
+ assert.Equal(t, omciMsg.TransactionID, uint16(0x0))
+ assert.Equal(t, omciMsg.MessageType, AlarmNotificationType)
+ assert.Equal(t, omciMsg.DeviceIdentifier, BaselineIdent)
+ assert.Equal(t, omciMsg.Length, uint16(40))
+
+ msgLayer := packet.Layer(LayerTypeAlarmNotification)
+ assert.NotNil(t, msgLayer)
+
+ request, ok2 := msgLayer.(*AlarmNotificationMsg)
+ assert.True(t, ok2)
+ assert.NotNil(t, request)
+ assert.Equal(t, request.EntityClass, me.ClassID(255))
+ assert.Equal(t, request.EntityInstance, uint16(0x104))
+ assert.Equal(t, request.AlarmBitmap, [28]byte{
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ })
+ assert.Equal(t, request.AlarmSequenceNumber, byte(5))
+}
+
func TestAlarmNotificationSerialize(t *testing.T) {
goodMessage := "0000100a000b0104800000000000000000000000000000000000000000000000000000000000000500000028"
@@ -2688,7 +2802,6 @@
assert.Equal(t, strings.ToLower(goodMessage), reconstituted)
}
-
func TestJira3769(t *testing.T) {
// VOL-3769. Error parsing get response with processing error and large mask
sampleMessage := "035e290a0101000001FFFC000000000000000000000000000000000000000000000000000000000000000028"
@@ -2719,5 +2832,6 @@
assert.Equal(t, response.Result, me.ProcessingError)
assert.Equal(t, response.AttributeMask, uint16(0xFFFC))
}
+
// TODO: Create notification tests for all of the following types
//TestResult,